使用 application/x-www-urlencoded 形式的post请求

使用 application/x-www-urlencoded 形式的post请求

在一般情况下,我们使用axios进行post请求是这样的

axios.post('url', {
    username,
    password,
  })
.then((res) => { ... })
.catch((res) => { ... });

当我们需要创建一些信息,调用接口上传一些数据的时候,我们用以上的方式会发生500错误,原因是axios默认是application/json格式的,即使添加了请求头 最后的content-type的形式还是 json 的,需要进行字符串的转换才能成功请求。


解决方法

axios github上提供的方法

1.一个比较常用的方法是: 使用URLSearchParams API

  const params = new URLSearchParams();
  params.append('username', username);
  params.append('password', password);
  axios.post('url', params)
    .then((res) => {...})
    .catch((res) => {...});

2.使用qs序列化json对象(在某种情况下会出现中文乱码,需要后端过滤支持)

  var qs = require('qs');
 axios.post('url', qs.stringify({
  'username': username,
  'password': 'password'
 }))
    .then((res) => {...})
    .catch((res) => {...});

你可能感兴趣的:(使用 application/x-www-urlencoded 形式的post请求)