附加到查询字符串JavaScript

时间:2019-03-15 21:15:27

标签: javascript url append

当我尝试在查询字符串的末尾添加一个id时,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;
    }

1 个答案:

答案 0 :(得分:2)

“%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;
    }