为什么改了请求头中 Content-Type 的请求格式为 application/x-www-form-urlencoded,但是请求的格式还是 application/json 格式的?

【为什么改了请求头中 Content-Type 的请求格式为 application/x-www-form-urlencoded,但是请求的格式还是 application/json 格式的?】

修改 Content-Type 的代码

this.axios
        .post(
          '/shop/goods/list/v2',
          {
            categoryId: 263919,
          },
          {
            headers: {
              'content-type': 'application/x-www-form-urlencoded',
            },
          }
        )
        .then(res => {
          this.goodsList = res
        })

image.png
传递的依然是 application/json 格式的
image.png

阅读 3.2k
3 个回答
{
            categoryId: 263919,
          }

改成

new URLSearchParams({
            categoryId: 263919,
          }).toString()

因为 axios 不会给你自动转换这些东西的。本身 'application/x-www-form-urlencoded' 也好几种规范。

你最后的截图已经是formData格式了, 如果你想让里面内容不是JSON格式, 可以考虑用qs库对参数

{
    categoryId: 263919,
}

进行序列化。
方法二: axios有两种传参格式, 一个data, 一个params, 改一下传参也行, 参考楼上说的去看官方文档吧

因为 axios 本来也不会按照 header 来处理上传内容,自己处理一下吧,可以参考 官方文档

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题