URLSearchParams总是返回空

时间:2019-08-12 19:27:17

标签: javascript

我需要设置example.com?want[]=1,2,3&want[]=1,2,3&want[]=1,2,3之类的网址

let params = new URLSearchParams();

for(let i in searchArr) {
    params.append('want[]', `${searchArr[i].id},${searchArr[i].quality},${searchArr[i].level}`);
}

console.log(params);

我已经验证了给定的值是否存在,但始终显示URLSearchParams {},但控制台中没有值。

为什么它是空的?

2 个答案:

答案 0 :(得分:1)

URLSearchParams是一个对象。您需要使用toString()将其强制转换为字符串,如下所示:

var params = new URLSearchParams();
params.append('want[]', '1,2,3');
params.append('want[]', '1,2,3');
params.append('want[]', '1,2,3');

console.log(params.toString());

(注意:这将对“ [”,“]”和“,”等字符进行URL编码)

答案 1 :(得分:0)

您可以使用URLSearchParams上可用的任何这些方法来访问值

  • getAll()->对于特定的搜索参数
  • .entries()->对于所有键/值对
  • .values()->对于所有值

var params = new URLSearchParams();
params.append('want[]', '1,2,3');
params.append('want[]', '1,2,3');
params.append('want[]', '1,2,3');

console.log(params.getAll('want[]'));
console.log([...params.entries()]);
console.log([...params.values()]);