【问题标题】:jQuery.ajax: TypeError: Property 'xhr' of object #<Object> is not a functionjQuery.ajax:TypeError:对象#<Object> 的属性“xhr”不是函数
【发布时间】:2012-09-04 15:44:30
【问题描述】:

我有一个 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();
        }
    });

【问题讨论】:

  • Ajax 方法没有功能,名称为 xhr: req .. 这弄乱了您的请求

标签: javascript jquery html ajax xmlhttprequest


【解决方案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;
},

【讨论】:

  • 不应该是var myXhr = $.ajaxSettings.xhr();吗?似乎是一个错字
猜你喜欢
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多