关于axios get请求和post请求遇到的坑

后台是用.net写的。

官方文档给出的get请求没有问题:

实际例子:

getSupplierList:function () {//获取供应商列表信息
    this.$axios.get(this.$store.state.commonUrl+'/api/Supplier/GetSupplierList',{
        params:{
            key1:value1,
            kay2:value2,
        }
    }).then( (response) =>{
        if(response.data.Result == true){
            //请求成功的操作
        }else{
            //('请求失败');
        }

    }).catch(function (error) {
            console.log(error);
        });
},

post请求坑有点多,请求参数按官方文档根本不行:

实际例子(参数为json对象)

在axios中添加插件qs
import Vue from 'vue';
import axios from "axios";
import qs from 'qs';
// Full config:  https://github.com/axios/axios#request-config
// axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';
// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
Vue.prototype.$axios = axios;

Vue.prototype.$qs = qs;
let requestData ={
    Id:val.Id,
    SupplierCode :val.SupplierCode,
    SupplierName:val.SupplierName,
    Remark :val.Remark,
    Operator :this.$store.state.loginName
} ;
//let requestString = requestData;
 let requestString = this.$qs.stringify(requestData);
this.saveSupplierInfo(requestString)
saveSupplierInfo:function(params){//保存或修改
    this.$axios.post(this.$store.state.commonUrl+'/api/Supplier/SaveSupplierInfo',params).then( (response) =>{
        if(response.data.Result == true){
            console.log(response.data.Result)
            return ;
        }else{
            console.log(response)
            alert('请求失败');
        }

    }).catch(function (error) {
        console.log(error);
    });
},

一开始没用qs插件,传参的时候,怎么写都是参数解析不正确。后来加了qs,请求没有问题。当把qs注销掉后,原来的传参方式也可以了。还请看到的大神帮忙解决下。

post普通参数请求实例:

let param = new URLSearchParams();
param.append('maintenanceId', '1');       //你要传给后台的参数值 key/value
param.append('dataStatus', '1');
param.append('operator', '1');
// this.demo(param);
demo:function (param) {
    this.$axios.post(this.$store.state.commonUrl+'/api/Maintenance/SaveMaintenanceDataStatus?'+param,

        ).then( (response) =>{
        console.log(response)
        if(response.data.Result == true){
            return ;
        }else{
            console.log(response)
            alert('请求失败');
        }

    }).catch(function (error) {
        console.log(error);
    });
},

按照官方和网上查的一些方法行不通,暂时只能这样请求,总觉得post这样写有问题,等找到方法再修改。

你可能感兴趣的:(axios)