当前位置: 首页 > Web前端 > vue.js

如何让axios发送json格式的请求数据?

时间:2023-03-31 15:32:13 vue.js

axios默认的post请求头数据格式是application/x-www-form-urlencoded,这是浏览器默认的FormData编码格式:有时候后端需要让你发送json格式的格式,这时你需要改axios的请求头,可以简单封装一下。1、代码怎么写?/***post方法,对应post请求*@param{String}url[请求的url地址]*@param{Object}params[请求中携带的参数]*@param{Boolean}json[true:json格式化请求头;false:FormData格式请求头]*/exportfunctionpost(url,params={},json=false){//json格式请求头constheaderJSON={"Content-Type":"application/json"};//FormData格式请求头constheaderFormData={"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};returnnewPromise((resolve,reject)=>{axios.post(url,json?JSON.stringify(params):QS.stringify(params),{headers:json?headerJSON:headerFormData}).then(res=>{resolve(res.data);}).catch(err=>{reject(err.data);});});}//post接口封装://json或FormData格式请求头测试接口postHeader(params,isJson){returnpost('/postHeader',params,isJson)}如果需要FormData格式,可以这样传参数postHeader(params),如果需要json格式,需要传参数postHeader(params,true)像这样。PS:如果你在跟后台调试接口的时候尝试过各种方法,但是都没有办法获取到数据,也许你应该考虑接口可能不需要默认的FormData格式的数据,或许你想要的是json中的数据格式。诀窍不是改一个数据格式,而是改一个数据格式不告诉你,接口文档也没写,你可以说半天。..2.示例代码下载可以复制以上代码运行查看效果,也可以从GitHub下载:https://github.com/Jackyyans/code123。更多样例会持续更新,欢迎关注。