post、put请求

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);
}

最后打印出入后台的数据
在这里插入图片描述
完美解决!!

猜你喜欢

转载自blog.csdn.net/weixin_43444623/article/details/86040779