jqueryajax生成查询字符串,如果未定义则不通过
jquery ajax generating query string if undefined do not pass
嗨,我正在使用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 Market"
。然而,我希望它只通过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,并添加一个字符串检查(您可以只检查字符串的类型):
$('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....
}
});
}
}
相关文章:
- jqueryajax生成查询字符串,如果未定义则不通过
- Google 表格脚本 - “无法读取未定义的属性”(如果不是)
- 为什么“如果( !Object.property)“,如果 Object 未定义,则中断
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- TypeError:b未定义,如果结果集中的行数小于pageLength
- 如果 req.param === 未定义,如何更改 req.param
- 如果定义了值,为什么会得到一个未定义的值?使用 eval()
- AngularJS:如果值未定义,如何不呈现属性
- JavaScript:如果未定义,则实现“element.hasAttribute”(对于IE7)
- Javascript 函数.可变结果.为什么未定义或没有 如果 else 语句函数
- 如果我在 Filter() 函数中使用索引,我会得到一个未定义的引用错误吗?
- 如果我对“无法读取未定义的属性'****'”没问题怎么办
- 如何检查 Javascript 中的变量是否在另一个 Javascript 文件中定义,如果未定义,则显示警报
- 如果不是未定义和索引('foo')做某事
- 如果你不返回任何内容,为什么函数会返回未定义?Javascript
- 定义 Float32Array(如果未定义)
- 为什么ecmascript5说&&如果任一操作数未定义,逻辑运算符将引发ReferenceError异常
- jQuery,如果在其他函数中使用,则为未定义函数
- 如果变量未定义,有没有办法在浏览器中停止脚本
- 如果未定义,则“;0”;在appendTo中