问题:

当我们需要通过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. gitea服务的搭建

    gitea服务的搭建 gitea是一个轻量级的Git服务器,可以在Linux.Windows和MacOS等平台上运行.gitea提供了一个简洁的Web界面,方便用户管理代码仓库.团队协作和代码审查.g ...

  2. 阿里云数据库Inventory Hint技术分析

    秒杀场景是电商系统中最具挑战性的场景之一,其核心痛点在于超高并发请求(百万级甚至千万级QPS) 与 有限库存 之间的矛盾,以及由此引发的 系统崩溃.超卖.不公平 等问题.阿里通过一套精密的架构和算法组 ...

  3. 容器跨主机网络通信学习笔记(以Flannel为例)

    我们知道在Docker的默认配置下,不同宿主机上的容器通过 IP 地址进行互相访问是根本做不到的. 而正是为了解决这个容器"跨主通信"的问题,社区里才出现了很多的容器网络方案. 要 ...

  4. 报表自动生成程序:ZREPORT_GENERATOR

    群里看到的,抄别人的...源自哪里就不清楚了.这里申明一下:非本人所写,如果侵权,你打群主好了. 这里说明一下:这个程序不太好用,没有SQVI友好.(以下问题可能是没用字段别名,不想试验了) 1.生成 ...

  5. ABB机器人指令 PackRawBytes

    参数: Value, RawData \Network , StartIndex ,\Hex1|IntX|\Float4|\ASCII; Value: 需要打包的数据, 类型包含num.dnum, b ...

  6. 树形DP详解

    哈喽大家好,我是 doooge,今天给大家带来的是 树形DP 详解. \[\Huge \sf 树形DP 详解 \] 1.树形DP是什么 想必大家都学过动态规划吧,树形DP 就是 DP 的一部分.顾名思 ...

  7. 4G DTU连接阿里云

    随着物联网平台的应用越来越广泛,越来越多的用户需求数据通过4G DTU传到阿里云,然后用户从阿里云上实时获取需要的数据,本文介绍卓岚设备ZLAN8305/ZLAN5144J如何通过MQTT功能和JSO ...

  8. Spring 6

    一.基础 1.什么是反射 在Java中,反射是指在运行时检查和操作类.接口.字段和方法等程序结构的能力. 通过反射,你可以在运行时动态获取类的信息.实例化对象.访问和修改字段.调用方法, 以及构造新的 ...

  9. 实现一个双向绑定和v-model

    发布订阅模式 我把发布订阅的实现类单独提出来,这样代码看起来简洁 /* * 发布订阅 **/ class Pubsub { static instance = null; // 单例 static g ...

  10. 向量数据库 Chroma 和 Milvus的使用

    一.什么是向量数据库? 向量数据库(Vector Database)是专门用来存储和检索向量数据的数据库.它广泛应用于图像搜索.推荐系统.自然语言处理等领域. 简单理解: 你给数据库一堆「特征向量」( ...