关于http url带有特殊符号(get请求参数组类型传送)解决传特殊字符。

一   前端 http get 数组类型传参的形式(特殊中括号)

发关http get请求后台参数是数组类型时,你可以使用方括号 [] 来表示参数是一个数组。这通常被称为 "Query String Array" 或 "URL-encoded array"。下面是一些示例,演示了如何在URL中设置数组参数:

1使用方括号:

http://test.com/api/resource?param[]=value1¶m[]=value2¶m[]=value3

 如果是使用axios框架get时,默认会转换成这种格式。

2重复参数名

http://test.com/api/resource?param=value1¶m=value2¶m=value3

3混合使用:

http://test.com/api/resource?param=value1¶m[]=value2¶m[]=value3

允许你在数组中包含有一个值,方便动态添加多个值到数组中。

二  后端处理带有特殊符号URL

          有些后端处理遇到url包含特殊符号时会报错:Invalid character found in the request target ,而有些后端就能处理,这与后端采用的框架所处理的数据方法用关。

在URL中,有一些字符是被允许的,而有一些字符则是被禁止的。

对于数组类型的参数,你可以使用一些URL编码方式来确保URL中的字符都是有效的。例如,使用百分号编码(percent encoding)来替代特殊字符。以下是一些可能导致问题的字符和它们的编码方式:

  1. 方括号 []

    • [ 编码为 %5B
    • ] 编码为 %5D

    在URL中,你可以将 param[] 编码为 param%5B%5D

  2. 其他特殊字符:

    • 等号 = 编码为 %3D
    • 和号 & 编码为 %26
    • 空格编码为 %20+

确保将所有非标准字符进行适当的URL编码,以避免导致请求错误。要使用内置的URL编码函数,例如 encodeURIComponent(JavaScript)。通过使用这些函数,你可以确保URL中的参数是有效的,并且符合RFC 7230和RFC 3986的规范。

 

 

你可能感兴趣的:(http,网络协议,网络)