jQuery.ajax:TypeError:对象#<object>的属性'xhr'不是函数</object>

时间:2012-09-11 16:46:13

标签: javascript jquery html ajax xmlhttprequest

我有一个jquery.ajax对象,我想在其中替换xhr。但是,执行以下代码会给我一个错误:

TypeError: Property 'xhr' of object #<Object> is not a function

相关代码是:

    var req = jQuery.ajaxSettings.xhr();
    req.upload.addEventListener('progress', calendar.check_progress, false);

    $.ajax({
        url: script_root + '_save_file/'+id+'/'+timestamp,
        type: 'POST',
        processData: false,
        contentType: false,
        data: fd,
        xhr: req,
        success: function(data){
            do_something();
        },
        error: function(data){
            console.log(data);
            do_something_else();
        }
    });

1 个答案:

答案 0 :(得分:1)

xhr以其他方式使用。请参阅文档:http://api.jquery.com/jQuery.ajax/

  

xhr:功能

     

默认值:ActiveXObject可用时(IE),XMLHttpRequest   否则

     

用于创建XMLHttpRequest对象的回调。默认为   ActiveXObject在可用时(IE),否则为XMLHttpRequest。   重写以提供XMLHttpRequest或您自己的实现   对工厂的改进。

可能你正在寻找像

这样的东西
xhr: function() {
    var xhr = $.ajaxSettings.xhr();
    xhr.upload.addEventListener('progress', calendar.check_progress, false);
    return myXhr;
},