是否存在通过查询字符串传递数组的标准方法?
需要明确的是,我有一个带有多个值的查询字符串,其中一个是数组值。 我希望将该查询字符串值视为一个数组-我不希望该数组爆炸,以使其与其他查询字符串变量没有区别。
另外,根据该帖子的答案 ,作者建议未定义对数组的查询字符串支持。 这个准确吗?
编辑:
根据@Alex的答案,没有标准的方法可以执行此操作,因此我的后续工作是什么才是识别我正在读取的参数同时是PHP和Javascript数组的简单方法?
用相同的名称命名多个参数是否可以接受,这样我就知道它们属于数组? 例:
?myarray=value1&myarray=value2&myarray=value3...
还是这是不好的做法?
#1楼
我觉得这对于希望将查询字符串中的数组传递给servlet的人很有帮助。 我在查询字符串下面进行了测试,并能够使用req.getgetParameterValues();获取数组值。 方法。 以下是我通过浏览器传递的查询字符串。
http://localhost:8080/ServletsTutorials/*.html?
myname=abc&initial=xyz&checkbox=a&checkbox=b
复选框是我的参数数组。
#2楼
您在问题中提到了PHP和Javascript,但在标记中却没有提及。 我达到此问题的目的是将数组传递给MVC.Net操作。
我在这里找到了问题的答案:预期的格式是您在问题中建议的格式,其中多个参数具有相同的名称。
#3楼
这对我有用:
在链接中,to属性具有值:
to="/filter/arr?fruits=apple&fruits=banana"
路线可以处理此问题:
path="/filter/:arr"
对于多个数组:
to="filter/arr?fruits=apple&fruits=banana&vegetables=potato&vegetables=onion"
路线保持不变。
屏幕截图
#4楼
我使用React和Rails。 我做了:
js
let params = {
filter_array: ['A', 'B', 'C']
}
...
//transform params in URI
Object.keys(params).map(key => {
if (Array.isArray(params[key])) {
return params[key].map((value) => `${key}[]=${value}`).join('&')
}
}
//filter_array[]=A&filter_array[]=B&filter_array[]=C
#5楼
查询字符串携带文本数据,因此别无选择,只能展开数组,对其进行正确编码,然后以您选择的代表性格式传递它:
p1=value1&pN=valueN...
data=[value1,...,valueN]
data={p1:value1,...,pN:valueN}
然后在服务器端代码中对其进行解码。