问题:

当我们需要通过get方式传递一个数组作为参数 tag:[1,2,3,4]

预期是解析为:https://www.cnblogs.com/enter?tag=1&tag=2&tag=3&tag=4

然而真相是这样的:https://www.cnblogs.com/enter?tag[]=1&tag[]=2&tag[]=3&tag[]=4,后台是不可能解析到传递的参数。

解决方法

1、qs插件处理

1、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 输出结果:'a[0]=b&a[1]=c'
2、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 输出结果:'a[]=b&a[]=c'
3、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 输出结果:'a=b&a=c'
4、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' })
// 输出结果:'a=b,c'

2、使用URLSearchParams方式

let params = new URLSearchParams()
params.append('ids','1')
params.append('ids','2') //输出结果ids=1&ids=2

3、Axios配置

axios.interceptors.request.use(async (config) => {
//只针对get方式进行序列化
if (config.method === 'get') {
config.paramsSerializer = function(params) {
return qs.stringify(params, { arrayFormat: 'repeat' })
}
}
}

4、小程序

 let urlQueryString = qs.stringify(options.params, {   //使用到qs ,先下载,后引入
addQueryPrefix: true,
allowDots: true,
arrayFormat: 'repeat'
});
myUrl += urlQueryString;

get请求数组参数问题(序列化)的更多相关文章

  1. http post请求数组参数写法

    1.json形式 body如下(注意是中括号): [ *, *, * ] postman: fiddler: 2.x-www-form-urlencoded postman: fiddler: 3.服 ...

  2. springMvc接收ajax数组参数,以及jquery复选框选中、反选、全选、全不选

    一.复选框选中.反选.全选.全不选 html代码: <input type='checkbox' name='menuCheckBox' value='10' >苹果 <input ...

  3. FastJsonHttpMessageConverter请求中参数序列化问题排查

    问题 前几天帮忙其他部门的多个祖先级项目改造开发,服务间使用Feign方式调用,发现接口提供方接收到的请求,没有请求参数,经过排查发现服务调用方的FastJsonHttpMessageConverte ...

  4. 使用Typescript重构axios(三)——实现基础功能:处理get请求url参数

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  5. ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用

    1.在js中封装ajax向后台传递数组参数函数 //combogrid * * @Description 封装ajax向后台传递数组参数并将后台响应的数据赋值给一个变量方便其他插件使用该数据函数 * ...

  6. 解决JavaScript中使用$.ajax方式提交数组参数

    一般的,可能有些人在一个参数有多个值的情况下,可能以某个字符分隔的形式传递,比如页面上有多个checkbox: $.ajax{ url:"xxxx", data:{ p: &quo ...

  7. verilog 数组参数

    verilog 支持定义数组参数,这样工程很大时,例化模块时可以使代码更简洁:详见实例 module dma_controller #( parameter integer C0_MAX_MIG_BL ...

  8. node.js之路由,中间件,ge请求和post请求的参数

    一.路由 1.什么是路由 服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤 2.实现路由的方法 2.1.get请求访问网址时,做什么事 1 app.get(" ...

  9. vue axios 批量删除 数组参数

    方法一:前端循环请求服务器端delete(id)方法 请问如何获得element-ui表格中的勾选项index,以实现批量删除功能 https://segmentfault.com/q/1010000 ...

  10. SpringMVC接收对象数组参数进行封装

    前台代码:注意.contentType : "application/json; charset=utf-8",必须要设置,只有这样SpringMVC才认识这个json数组参数 f ...

随机推荐

  1. 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(5)

    1.问题描述: 集成华为一键登录的LoginWithHuaweiIDButton, 但是Button默认名字叫 "华为账号一键登录",太长无法显示,能否简写成"一键登录& ...

  2. 企业微信hook,自定义工具,收发消息

    协议版本 示例: 企业微信协议开发, 配置服务器开启服务端,接口开发企业微信协议接口开发,接收发送json数据即可: 接口调用:http请求 接下来 拿uuid去调用其他接口即可 例:发送位置 请求方 ...

  3. 指标+AI:迈向智能化,让指标应用更高效

    近日,以"Data+AI,构建新质生产力"为主题的袋鼠云春季发布会圆满落幕,大会带来了一系列"+AI"的数字化产品与最新行业沉淀,旨在将数据与AI紧密结合,打破 ...

  4. 袋鼠云数栈DTinsight与10家信创厂家完成产品兼容互认证,携手共建信创生态圈

    信创产业是国家数据安全.网络安全的基础,也是"新基建"的重要内容,它将成为拉动经济发展的重要抓手之一.随着国际竞争形势发生新的变化,力争掌握核心科技的"自主可控" ...

  5. CAE教程:HyperMesh概述与有限元分析简介

    1.1 HyperMesh 概述 本节将介绍有限单元法基本原理,HyperMesh 软件基本功能及界面介绍,获取在线帮助等内容. 1.1.1 有限元分析方法简介 有限单元法(FEM)是一种可以精确预测 ...

  6. Centos下多种PHP拓展安装方法

    http://my.oschina.net/u/2400083/blog/518195

  7. Hack 说明

    在今天的模拟赛中,部分同学由于对出现某个数在模 \(1000000007\) 意义下为 \(0\) 的情况不规范被 Hack. Hack 原理:开始时有 \(2\) 个 \(1\),先都加到 \(10 ...

  8. AI应用实战课学习总结(3)预测带货销售额

    大家好,我是Edison. 最近入坑黄佳老师的<AI应用实战课>,记录下我的学习之旅,也算是总结回顾. 今天是我们的第3站,了解下AI项目实践的5大环节,并通过一个预测直播带货销售额的案例 ...

  9. K8s 1.29.3 on Docker

    初始化 # 关闭防火墙 selinux systemctl disable --now firewalld setenforce 0 sed -i '/SELINUX=/s@enforcing@dis ...

  10. 微信小程序 物联网解决方案

    "卓岚物联"微信小程序是方便地查看物联网设备当前数据.历史数据.控制设备的简单有效的方法.查看和控制设备的实现可以在五分钟内完成,简单易用."卓岚物联"微信程序 ...