我想传递一个数组并添加到我的页面上的链接作为url参数,因为稍后在服务器端我需要数组中的值。我该怎么做?
myArray = ['aaa', 'bbb', 'ccc'];
$('#myLink').attr({"href" : '/myLink?array=' + myArray});
我不确定这是否是正确的做法?
答案 0 :(得分:20)
您可以序列化JSON:
myArray = ['aaa', 'bbb', 'ccc'];
var arrStr = encodeURIComponent(JSON.stringify(myArray));
$('#myLink').attr({ href: '/myLink?array=' + arrStr });
如果您的解析(下一页)也是通过JavaScript完成的,那么您反过来使用JSON.parse()。在PHP中它将是json_decode()。
答案 1 :(得分:6)
它不应该依赖于服务器端:根据URI标准规范,所有参数必须具有一个名称并且应该具有一个值。但是可以有几个具有相同名称的参数,这是序列化数组的正确方法:
http://server/context?array=aaa&array=bbb&array=ccc&otherparameter=x
你可以这样做:
var s="";
for (var i=0;i< myArray.length;i++)
{
s+="&myArray="+myArray[i];
}
var url="http://server/context?"+s;
答案 2 :(得分:5)
试试这个
to go
*blah blah blah all you're other stuff*
set timer timer + 1
tick
end
服务器上的:捕获和拆分数据。
答案 3 :(得分:2)
将字符串数组作为URL参数传递:
const myLink = 'https:/example.com/api'
const myArray = ['aaa', 'bbb', 'ccc'];
let apiUrl = `${myLink}/query?`;
myArray.forEach((x) => {
apiUrl += `&array=${x}`;
});
console.log(apiUrl);
// https://example.com/api/query?array="aaa"&array="bbb"&array="ccc"
答案 4 :(得分:0)
我会采用这种方法,
var myArray = ['aaa', 'bbb', 'ccc', ];
var myArrayQry = myArray.map(function(el, idx) {
return 'myArray[' + idx + ']=' + el;
}).join('&');
// myArray[0]=aaa&myArray[1]=bbb&myArray[2]=ccc
然后,我将URL查询参数作为服务器端的数组检索。