axios 中 post 使用

和后端配合完成项目时,使用到 axios 这个库,post 提交时遇到点问题,网上搜了搜找到了解决办法

Posted by 刘一凡 on February 25, 2017

今天看和后端配合完成项目时,使用到 axios 这个库,post 提交时遇到点问题,网上搜了搜找到了解决办法

问题

使用 axiospost 提交

var data = {
  name: Lyf,
  year: 21
}

axios.post('http://example.com/add', data, {
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
})
.then((res) => {
  console.log(res)
})

结果一直报错,后来发现后端都没有接收到数据。。。

解决

然后网上搜了一下,别人说是参数没有序列化,使用 nodejs 自带的一个 querystring 模块,querystring.stringify 方法可以将对象格式化成参数字符串,问题解决。。

import qs from 'query-string'

var data = {
  name: Lyf,
  year: 21
}

axios.post('http://example.com/add', qs.stringify(data), {
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
})
.then((res) => {
  console.log(res)
})