vue修改Content-Type不生效

在请求拦截了配置了 转成form的 不生效

请求数据类型需要application/x-www-form-urlencoded
可是还是没法接到接口里的数据 code都不是200

阅读 4.2k
2 个回答
fm = new FormData();
fm.append('a', 1)
axios1 = axios.create({
  transformRequest: [function (data, headers) {
      data = 'a=1'
// data = new URLSearchParams(fm).toString();
      console.log('transformRequest', data, headers)
    return data;
  }],
});


axios1({
    url:'/cors/axios',
    data: fm,
    method: 'post'
})
    .then(console.log)

transformRequest 即可 FormData 可以用 new URLSearchParams(fm).toString() 转换。

可以重新封装一个FormDataPost,或者直接使用原生的axios

下面是原生axios写法(qs序列化 是axios自带的 , 无需单独安装包)

axios.post(url, qs.stringify(data), 
{
          headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
          },
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题