jQuery.ajax()并发送布尔请求参数

bar*_*hin 7 javascript jquery

$.ajax({
  url : uri,
  type : 'post',
  data : {someBooleanVar1: false, subVar: {someBooleanVar2: true}}
});
Run Code Online (Sandbox Code Playgroud)

问题是在服务器上someBooleanVar1和someBooleanVar2将作为字符串"false"和"true"接收,但不能作为"0"和"1"接收.有没有办法自动将布尔参数转换为"1"和"0"?

bar*_*hin 2

有一个固定版本的@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);
Run Code Online (Sandbox Code Playgroud)