$.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);