gpt4 book ai didi

javascript - 将查询字符串设置为 ajax 数据

转载 作者:行者123 更新时间:2023-11-29 23:25:34 25 4
gpt4 key购买 nike

这个网址:

myurl.com/index?b=5&m=2

我通过一个函数得到了查询字符串,结果是:

function getQuery(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0] + '=' + hash[1]);
//vars[hash[0]] = hash[1];
}
return vars;
}

和:

var query = getQuery();

返回:

[
0: "b=5"
1: "m=2"
];

现在我想将这些添加到 ajax 数据中:

var queries = query.join('&');

$.ajax({
type: "GET",
data: {
limit: limit,
provId: provId,
catid: catid
// add query strings after this
},
dataType: 'html',
url: '/api/fetch.php?getBrowse&' + queries,
success: function(data) {

}
});

AJAX URL 应该是这样的:

api/fetch.php?getBrowse&b=5&m=2&limit=2&provId=1&catid=59

如您所见,我在 Ajax 的 URL 末尾附加了查询,它仅在设置了这些查询时才起作用,但如果没有设置,它会返回错误值或空值。

我想要的是,添加这些查询,如数据结构,

像这样:

data: {
b: bval,
m: mbal,
limit: limit,
provId: provId,
catid: catid
},

但这是手动设置的,我不知道设置了哪些查询,bm 等等。所以我正在寻找一种方法来添加每个查询动态地,如果设置追加到 AJAX 数据,如果不设置则不追加。有什么想法吗?

最佳答案

我会使用不同的 getQuery 将查询参数作为键/值对象而不是数组取回。

function getQuery(){
var params = {};
window.location.search.slice(1).split('&').map(function(pair){
var [key, value]= pair.split('='); // using destructuring assignment
params[key] = value;
})
return params;
}

现在您可以使用 Object.assign 将两个对象合并为一个。

var urlParameters = getQuery(),
initialOptions = {
limit: limit,
provId: provId,
catid: catid
},
combinedData = Object.assign({}, initialOptions, urlParameters);

$.ajax({
type: "GET",
data: combinedData ,
dataType: 'html',
url: '/api/fetch.php?getBrowse',
success: function(data) {

}
});

关于javascript - 将查询字符串设置为 ajax 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com