表单POST方式提交默认头信息为Content-Type: application/x-www-form-urlencoded,参数是自动序列化好的不需要另做处理
但有一种POST情况不是用表单提交的,后端希望接收的参数与表单提交的格式保持一致,这时就需要前端对参数做序列化处理了,这里常用的是qs处理
安装qs
npm install qs -S
后端要求的数组参数为以下格式:

前端的原始参数:
let params = {
points: [
{ lat: 111, lng: 222 }
]
};
params = qs.stringify(params); //序列化
用qs.stringify)序列化后得到的默认是下面这种格式:

这种格式与后端要求的格式有些许不同,也因为这个小不同导致后端接收不到传过去的参数。
找了qs的资料,加上数组格式化配置最终解决
qs.stringify(params, { arrayFormat: 'indices', allowDots: true })

使用qs处理POST请求参数
812

被折叠的 条评论
为什么被折叠?



