gpt4 book ai didi

javascript - jquery ajax生成查询字符串如果未定义则不通过

转载 作者:行者123 更新时间:2023-11-28 07:30:25 24 4
gpt4 key购买 nike

您好,我正在使用 jquery 和 ajax 从 CMS API 发布和获取数据。我正在生成一个查询字符串来获取数据,如下所示:

region = typeof region !== 'undefined' ? 'region='+region : '';
centre = typeof centre !== 'undefined' ? 'centre='+centre : '';

data = region+centre; // generate query string

现在我认为如果未定义,上面的内容不会传递任何内容,但是如果我在单击触发中心变量的按钮时控制台记录data,它会传递region="undefined"centre =“中心市场”。但是我希望它只传递 centre="Centre Market" 这将是单击的按钮的 href。

这是我的点击函数:

$('ul.dropdown li a').click(function (e) {
e.preventDefault();
console.info('Selected Centre: "' + $(this).attr('href') + '"');
var centre = $(this).attr('href');
getData.update('/overview', 'undefined' centre);
});

正如您所看到的,这将 href 属性传递给 getData.update 函数,该函数位于下面...

var getData = {

update: function (url, region, centre) {

region = typeof region !== 'undefined' ? 'region='+region : '';
centre = typeof centre !== 'undefined' ? 'centre='+centre : '';
// i dont want to pass region if it is undefined
data = region+centre; // generate query string

console.log(data);
$.ajax({
url: url,
async: true,
dataType: 'json',
data: data, // data passed here
type: 'POST',
success: function (json) {
//success stuff....
}
});
}
}

如您所见,我将数据传递到 ajax 函数中,如下所示:

data = region+centre; // generate query string

因此,如果区域未定义或为空或未通过,我不希望它成为查询字符串的一部分,即不包含 region=。我有什么想法可以做到这一点吗?

最佳答案

改为检查 null,并添加对字符串的检查(您可以只检查 typeof string):

$('ul.dropdown li a').click(function (e) {
e.preventDefault();
console.info('Selected Centre: "' + $(this).attr('href') + '"');
var centre = $(this).attr('href');
getData.update('/overview', null, centre);
});

正如您所看到的,这将 href 属性传递给 getData.update 函数,该函数位于下面......

var getData = {

update: function (url, region, centre) {

region = (region != null && typeof region == 'string') ? 'region='+region : '';
centre = typeof centre !== 'undefined' ? 'centre='+centre : '';
// i dont want to pass region if it is undefined
data = region+centre; // generate query string

console.log(data);
$.ajax({
url: url,
async: true,
dataType: 'json',
data: data, // data passed here
type: 'POST',
success: function (json) {
//success stuff....
}
});
}

}

关于javascript - jquery ajax生成查询字符串如果未定义则不通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188563/

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