问题:当传递参数为数组,且数组里有对象
例如所传参数如下:
attachments: [
{
name: 'xxx',
path: 'xxx',
url: 'xxx'
}
]
期望:
attachments[0].name: 'xxx'
attachments[0].path: 'xxx'
attachments[0].url: 'xxx'
实际:
attachments[0][name]: 'xxx'
attachments[0][path]: 'xxx'
attachments[0][url]: 'xxx'
解决方法:只要在前端传参时对参数data进行如下处理即可:
qs.stringify(data, { arrayFormat: 'indices', allowDots: true })
可以单个处理,也可以统一处理,例如在request拦截器里面添加如下代码:
if (config.method === 'get') {
config.paramsSerializer = function (params) {
return qs.stringify(params, { arrayFormat: 'indices', allowDots: true })
}
}
qs.stringify({ ids: [1, 2] }, { arrayFormat: 'indices' }) // ids[0]=1&ids[1]=2
qs.stringify({ ids: [1, 2] }, { arrayFormat: 'brackets' }) // ids[]=1&ids[]=2
qs.stringify({ ids: [1, 2] }, { arrayFormat: 'repeat' }) // ids=1&ids=2
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!