jQuery.ajax()并发送布尔请求参数
$.ajax({
url : uri,
type : 'post',
data : {someBooleanVar1: false, subVar: {someBooleanVar2: true}}
});
问题是,在服务器上someBooleanVar1和someBooleanVar2将被接收为字符串“false”和“true”,但不是“0”和“1”。 有没有办法自动将布尔参数转换为“1”和“0”?
有一个固定版本的@jcubic答案:
function convertBoolToNum(obj) {
$.each(obj, function(i) {
if (typeof obj[i] == 'object') {
convertBoolToNum(this);
}
else if (typeof obj[i] == 'boolean') {
obj[i] = Number(obj[i]);
}
});
}
$.ajax = (function($ajax) {
return function(options) {
convertBoolToNum(options.data);
return $ajax(options);
};
})($.ajax);
试试这个,它应该自动将布尔值转换为数据选项中的数字。
$.ajax = (function($ajax) {
return function(options) {
if (options.data != undefined) {
for (var i in options.data) {
if (options.data.hasOwnProperty(i) &&
(typeof options.data[i] == "boolean")) {
options.data[i] = Number(options.data[i]);
}
}
}
return $ajax(options);
};
})($.ajax);
我知道这篇文章有点旧,但我仍然想传递这些信息^^我把vars传给php,
filter_var($var, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
像这样,我把字符串转换为布尔值true=1
, false=
false,因为字符串在php中是空的
也许我读错了问题。 但这是我理解:)用上面的代码你可以轻松地构建一个函数,并添加更多的过滤器,让一切工作,因为你想:)
链接地址: http://www.djcxy.com/p/50707.html上一篇: jQuery.ajax() and sending boolean request arguments
下一篇: Export certificate in windows store to a p12 file using Java