当前位置:
首页
文章
前端
详情

vue3.x axios解决Content type 'application/x-www-form-urlencoded;charset=UTF-8' 不支持问题

出现这个问题,主要还是因为记错了后端具体使用的是什么内容类型来接收前端 POST 传输参数,所以只要知道了后端采用的内容类型就可以很好的解决问题,如后端是通过 application/json,就可如下处理:

const result =  axios.post('user/list', {pageSize: 15, pageNumber: 1}, {
  headers: {
    'Content-Type': 'application/json'
  }
})

const result = axios({
  method: 'POST',
  url: 'user/list',
  headers: {
    'Content-Type': 'application/json'
  },
  data: {pageSize: 15, pageNumber: 1}
})

然后在 axios 的封装里加上对应的判断:

const instance = axios.create({
  baseURL: '/api/',
  transformRequest: [(data, headers) => {
    if(headers?.['Content-Type'] === 'application/json') {
      return JSON.stringify(data);
    }
    return qs.stringify(data)
  }]
})

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。