Vue 中用delete方式进行axios请求接口,请求状态码报415(Unsupported Media Type)
报错截图:
导致原因:
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=>{})
相关网址: https://blog.csdn.net/w_e_i_1201/article/details/86006816
以及关于axios 中文文档详解网址: https://www.jb51.net/article/123485.htm