当前位置:   article > 正文

解决axios报错400:Request Payload 转为 Form Data,并将对象内元素拆出_axios request payload 转为 form data

axios request payload 转为 form data

问题:请求的数据格式与后台要求的不匹配
思路:axios对比用jq的请求是成功的
axios请求:
在这里插入图片描述
jq请求:
在这里插入图片描述
首先发现Request Payload和Form Data不同
解决:增加请求头

this.$http({
   method: "post",
   url: "/login/xxx",
   data: this.ruleForm,
   headers: { "content-type": "application/x-www-form-urlencoded" },
 }).then((res) => {
   console.log(res);
 });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果:
在这里插入图片描述
很多人到这就解决了,但是我的继续400,对比了一下jq的,应该不难用{}包裹,那就是必须要Form Data格式的数据了
使用formData包裹数据

let formData = new FormData();
formData.append('name',this.ruleForm.name);
formData.append('password',this.ruleForm.password);
this.$http({
 method: "post",
 url: "/login/checkLogin",
 data: formData,
 headers: { "content-type": "application/x-www-form-urlencoded" },
}).then((res) => {
 console.log(res);
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

最后成功
在这里插入图片描述
优化:
如果不想每次请求都手动改headers
那么就全局配置axios的headers

import axios from 'axios'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
Vue.prototype.$http = axios

``
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/279894
推荐阅读
相关标签
  

闽ICP备14008679号