Javascript - 如何将数组作为url参数传递

时间:2016-11-08 17:33:02

标签: javascript

我想传递一个数组并添加到我的页面上的链接作为url参数,因为稍后在服务器端我需要数组中的值。我该怎么做?

myArray = ['aaa', 'bbb', 'ccc'];

$('#myLink').attr({"href" : '/myLink?array=' + myArray});

我不确定这是否是正确的做法?

5 个答案:

答案 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查询参数作为服务器端的数组检索。