前端 - get请求传递数组

这篇具有很好参考价值的文章主要介绍了前端 - get请求传递数组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

感谢后端让我的知识点 + 1

一、数组请求方式

get 请求有以下几种方式来传递数组:

GET http://localhost:8080/users?roleIds=1&roleIds=2
GET http://localhost:8080/users?roleIds[0]=1&roleIds[1]=2
GET http://localhost:8080/users?roleIds[]=1&roleIds[]=2
GET http://localhost:8080/users?roleIds=1,2

二、解决方案

自己解决
let a = ["b", "c", "d"];
let str = "";
 
for(var index in a){
    str+='a='+a[index]+'&'
}
// str: a=b&a=c&a=d
借助qs插件
  1. qs.stringify({ a: [“b”, “c”, “d”] }); // a[0]=b&a[1]=c&a[2]=d

  2. qs.stringify({ a: [“b”, “c”, “d”] }, { indices: false }); // a=b&a=c&a=d

  3. qs 还可以通过arrayFormat 选项进行格式化输出:

    qs.stringify({ a: [“b”, “c”] }, { arrayFormat: ‘indices’ }) // a[0]=b&a[1]=c
    qs.stringify({ a: [“b”, “c”] }, { arrayFormat: ‘brackets’ }) // a[]=b&a[]=c
    qs.stringify({ a: [“b”, “c”] }, { arrayFormat: ‘repeat’ }) // a=b&a=c
    qs.stringify({ a: [“b”, “c”] }, { arrayFormat: ‘comma’ }) // a=b,c

三、axios 配置

axios中有一个专门对数据进行序列化的配置属性paramsSerializer

{
  url: '/user',
  method: 'get', // default
  baseURL: 'https://some-domain.com/api/',

   // `paramsSerializer` 是一个负责 `params` 序列化的函数
  // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)
  paramsSerializer: function(params) {
    return qs.stringify(params,{arrayFormat: 'brackets'})
  },
    
}

在axios请求拦截器中对参数进行序列化配置

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

四、参数转译

需要注意的是,如果请求参数中带有中括号[],[]在url中属于功能性字符,前端需要使用decodeURIComponent()函数转义,否则会出现400 Bad Request错误。

qs.stringify({ a: [‘b’, ‘c’, ‘d’] });  // a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d
decodeURIComponent(qs.stringify({ a: ["b", "c", "d"] }) // a[0]=b&a[1]=c&a[2]=d


参考链接
axios中文文档
vue中get请求如何传递数组参数文章来源地址https://www.toymoban.com/news/detail-790781.html

到了这里,关于前端 - get请求传递数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Jmeter之get请求传递的值为JSON体实践】

    Jmeter之get请求传递的值为JSON体实践 1、在URL地址后面拼接,有多个key和value时,用链接 2、在Parameters里面加上key和value 尝试一:把json放到value,勾选编码,发送请求后报错,提示参数异常 尝试二:把json进行URL编码后,再放到URL地址后面,发现json里面有需要参数化的值,所以

    2024年01月16日
    浏览(33)
  • postman如何在一个post请求中传递一个对象的数组

    在 Postman 中,可以在「Body」选项卡中选择「raw」并将数据格式设置为「JSON」,然后在文本框中输入 JSON 格式的对象数组,如下所示: 你也可以在「Params」选项卡中添加一个名为 \\\"array\\\" 的参数,并将其值设置为 JSON 格式的对象数组字符串,如下所示: Key: array Value: [{\\\"key\\\": \\\"v

    2024年02月11日
    浏览(46)
  • SpringBoot前端传递数组后端怎么接收

    在Spring Boot中,前端传递数组到后端的方式可以有多种。以下介绍两种常用的方法: 使用@RequestParam接收数组参数: 前端可以通过URL参数的形式传递数组,后端使用@RequestParam注解来接收数组参数。 示例代码: 前端请求示例: 在URL参数中使用相同的参数名(如arrayParam),Sp

    2024年02月04日
    浏览(48)
  • 前端传递JSON数组数据到后端(解析方法)

            在前端和后端之间 传递数组 时,由于HTTP协议的限制,无法直接传递数组类型的参数。 请求参数需要被转换为字符串格式传递给后端,所以需要通过 JSON.stringify() 方法将 gradeIdArray 数组转换为一个 JSON 字符串,并将其作为参数传递给后端。         在后端的控

    2024年02月16日
    浏览(54)
  • 前端使用GET请求时,参数或数据丢失

    公司项目上的某个订单请求时报错了,排查了一下是参数没有传过去 最后发现参数没有传过去是因为请求参数中有一个参数的value值是有问题的,而使用get请求时,参数会拼接在url上。 有问题的参数是collection_address的value值有一个#号,这就是问题所在 当我发起get请求时,我

    2024年02月15日
    浏览(57)
  • 前端提交post请求却变成get请求的原因及解决方法

    导语:笔者在vue2项目中,使用axios封装post请求,提交请求时却变成get请求 编写登录方法时,把method敲成methods,而且又看到了提示就直接使用了(太粗心😭) [ Axios 中文文档 ] 改成如下代码即可 · 浏览器的默认请求模式是GET     当我们在浏览器地址栏中输入一个网址或单击链

    2024年02月06日
    浏览(94)
  • 前端 axios 通过 get 请求发送 json 数据

    先说结论: axios 不能通过 get 请求发送 json 数据 使用 postman 可以做到通过 get 请求发送 json 数据 但是通过 axios 框架就不行, 主要是因为axios是对ajax的一个封装。他本身不支持get请求在body体传参。 原生和jquery的ajax是支持的。建议跟后端沟通,你把json拼在url后面,后端从url的

    2024年02月11日
    浏览(56)
  • @PathVariable、@PathParam、@RequestBody接收axios传递的请求参数;后端接收前端传递过来的参数

    目录 一、前言 :Content-Type 类型    (1)、 application/x-www-form-urlencoded 类型 (2)、application/json 类型 二、@PathVariable 二、@PathParam  三、@RequestBody  四、后端发送数据给前端 五、注意事项         请求参数以key-value的形式传输         请求参数以JOSN串的形式传输         ax

    2024年01月18日
    浏览(47)
  • Java后端和前端传递的请求参数的三种类型

    在 HTTP 请求中,常见的请求参数类型有三种:`application/x-www-form-urlencoded`、`multipart/form-data` 和 `application/json`(通常用于 `raw` 类型)。这三种类型主要指的是请求体中的数据格式,其中包括参数的传递方式和编码。 1. **`application/x-www-form-urlencoded`:**    - 这是默认的编码类型

    2024年02月02日
    浏览(50)
  • Java中GET请求与POST请求,前端传参与后端接收实例

    此示例以代码方式展现,可直接结合controller层每个接口上方注释与其接口传递参数方式理解! 前端传参直接就以apiPost工具来代替 apiPost调用后端接口几种方式   代码:  controller层: service层: mapper层: xml:

    2024年02月07日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包