当我尝试将 id append 到查询字符串的末尾时,JS 会向查询字符串添加不必要的与号和“=”符号。
我正在尝试做这样的事情:
http://sample_site/report/file/list?f%5B%5D=1111
但是当我在控制台中查看结果时,我得到了这个:
http://sample_site/report/file/list?f%5B%5D=&f=1111
这是我的 JS 函数,它构建了一个 URL 对象:
buildTileFilter(){
let url = new URL('http://sample_site/report/file/list?f%5B%5D');
let query_string = url.search;
let search_params = new URLSearchParams(query_string);
search_params.set('f', 1111);
url.search = search_params.toString();
let new_url = url.toString();
return new_url;
}
最佳答案
“%5B%5D”部分被视为参数名称的一部分。您必须将其添加到您设置的参数名称中才能获得您想要的结果。这是字符串“[]”的编码值,因此要获得结果,代码应该是:
buildTileFilter(){
let url = new URL('http://sample_site/report/file/list?f%5B%5D');
let query_string = url.search;
let search_params = new URLSearchParams(query_string);
search_params.set('f[]', 1111);
url.search = search_params.toString();
let new_url = url.toString();
return new_url;
}
关于javascript - append 到查询字符串 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55190765/