首页 > 解决方案 > jQuery 构建自定义查询字符串格式不正确

问题描述

我正在尝试构建一个必须如下所示的自定义查询字符串:

?filter[pv_number]=12&filter[location_of_facts]=West

但是当我记录它时,它看起来像这样:

?filter%5Bpv_number%5D=12&filter%5Blocation_of_facts%5D=West

我的jQuery

let pv_number = $( "input[name=pv_number]" ).val();
let location = $( "input[name=location_of_facts]" ).val();

let params = {'filter[pv_number]':pv_number, 'filter[location_of_facts]':location};
let queryString = jQuery.param(params);

console.log(queryString);

编辑

当我进行重定向时:

window.location.href = queryString;

我去这个页面:

http://127.0.0.1:8000/?filter%5Bpv_number%5D=651&filter%5Blocation_of_facts%5D=West

而不是这个页面:(我的目标)

http://127.0.0.1:8000/?filter[pv_number]=651&filter[location_of_facts]=West

编辑 2 完整的 jquery

$('#filterSearch').on('click', function(e) {
    let pv_number = $("input[name=pv_number]").val();
    let location = $("input[name=location_of_facts]").val();

    //filter[id]=1
    let params = {'filter[pv_number]':pv_number, 'filter[location_of_facts]':location};
    let queryString = jQuery.param(params);

    window.location.href = + '?' + queryString ;
});

这重定向到

http://127.0.0.1:8000/?filter%5Bpv_number%5D=651&filter%5Blocation_of_facts%5D=West

我想去:

http://127.0.0.1:8000/?filter[pv_number]=651&filter[location_of_facts]=West

标签: javascriptjquery

解决方案


标记以下两行 // let params = {'filter[pv_number]':pv_number, 'filter[location_of_facts]':location}; // let queryString = jQuery.param(params);

尝试这个

let queryString = `filter[pv_number]=${pv_number}&filter[location_of_facts]=${location_}`;

location 是保留关键字,所以我改为 location_


推荐阅读