报错截图:
导致原因:
vue中axios请求方式,delete和post,put在传值上有区别, post 和 put 有三个参数,url , data , 和 config 。所以在使用这两个时,可以写成 axios.post(url,{param:xx}) , axios.put(url,{param:xx}), 但是delete只有两个参数: url 和 config ,data在config中,所以需要写成 axios.delete(url,{data:{param:xx}}) 。
这个是在封装请求方法里面处理的,之前代码如下:
export function delete(url,params){return new Promise((resolve,reject)=>{
axios.delete(url,qs.stringify(params)).then(response=>{ //put封装和这个一样
resolve(response);
},err=>{
reject(err);
}).catch((error)=>{
reject(error);
})
})
}
改过之后,代码如下:
export function delete(url,params){return new Promise((resolve,reject)=>{
axios.delete(url,params).then(response=>{ //这里传递的参数不做处理
resolve(response);
},err=>{
reject(err);
}).catch((error)=>{
reject(error);
})
})
}
使用方法:
封装接口,例如: const delApi = value => 封装请求方法文件的名字.delete(url+'api/xxx/xxx',value);
调用:
let data = { param: param}; //传递的参数形式
封装接口的文件名字.delApi({data:data}).then(res=>{
//请求成功返回的数据
}).catch(err=>{})