如何使用 Javascript 构建查询字符串

2022-08-30 00:54:15

只是想知道Javascript中是否有任何内置的东西可以采用Form并返回查询参数,例如:"var1=value&var2=value2&arr[]=foo&arr[]=bar..."

多年来,我一直在想这个问题。


答案 1

URLSearchParams API在所有现代浏览器中都可用。例如:

const params = new URLSearchParams({
  var1: "value",
  var2: "value2",
  arr: "foo",
});
console.log(params.toString());
//Prints "var1=value&var2=value2&arr=foo"

答案 2

2k20更新:将Josh的解决方案与URLSearchParams.toString()一起使用

旧答案:


没有jQuery

var params = {
    parameter1: 'value_1',
    parameter2: 'value 2',
    parameter3: 'value&3' 
};

var esc = encodeURIComponent;
var query = Object.keys(params)
    .map(k => esc(k) + '=' + esc(params[k]))
    .join('&');

对于不支持需要 ES5 的箭头函数语法的浏览器,请将该行更改为.map...

    .map(function(k) {return esc(k) + '=' + esc(params[k]);})