post、put请求
提交这种复杂类型数据:
{
name:"Myname",
{
types:[1,3],
forms:[2,5]
}
}
一般的数据提交类型为json
,
对应的数据声明类型:'Content-Type':'application/json'
序列化:JSON.stringify(data)
json字符串
还有 FormData 类型的
对应的数据声明类型:'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'
序列化:qs.stringify(data)
ids[]=27&ids[]=26 ==> ids%5B0%5D=27&ids%5B1%5D=26
在使用axios发送put请求时,一开始使用的是json.stringify()的数据类型向后端node接口传递,但是总是返回下面这种数据
并且其类型还是Object类型,但是还不能调用到其里面的属性值,非常郁闷,
查了老多资料才发现这个可以用表单的数据处理方式传递数据,
于是我首先在后端接口设置可以处理表单数据的响应头(这里使用的是node Express搭建的接口)
res.header('Content-Type','application/x-www-form-urlencoded;charset=UTF-8');
接下来使用node中的qs模块处理将要发送的数据
import axios from 'axios';
const qs = require('querystring');
export let updateBook = (id,data)=>{
data = qs.stringify(data);
return axios.put(`/allbooks/${id}`,data);
}
最后打印出入后台的数据
完美解决!!