如何在jQuery 1.5中获取纯XMLHTTPRequest对象?

前端之家收集整理的这篇文章主要介绍了如何在jQuery 1.5中获取纯XMLHTTPRequest对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的代码在jquery 1.4中工作正常,我尝试将其升级到1.5.
但是这部分代码停止工作 – 它的标准beforeSend处理程序
beforeSend: function (xhr,options) {
//
__forced_abort = false;

//
xhr.upload.addEventListener('progress',on_progress,false);
xhr.upload.addEventListener('load',on_loaded,false);
xhr.addEventListener('abort',on_abort,false);
....

我知道在1.5还没有真正的xhr – 只是jqXHR高级抽象,似乎是jqXHR没有上传属性.

问题:如何在jQuery 1.5中获得纯(旧)xhr对象?

解决方法

如果您的beforeSend是全球性的:
var oldXHR = jQuery.ajaxSettings.xhr;
jQuery.ajaxSettings.xhr = function() {
    var xhr = oldXHR();
    if(xhr instanceof window.XMLHttpRequest) {
        xhr.upload.addEventListener('progress',false);
        xhr.upload.addEventListener('load',false);
        xhr.addEventListener('abort',false);
    }
    return xhr;
};

如果您的beforeSend特定于特定请求:

$.ajax({
    xhr: function() {
        var xhr = jQuery.ajaxSettings.xhr();
        if(xhr instanceof window.XMLHttpRequest) {
            xhr.upload.addEventListener('progress',false);
            xhr.upload.addEventListener('load',false);
            xhr.addEventListener('abort',false);
        }
        return xhr;
    }
});
原文链接:https://www.f2er.com/jquery/181543.html

猜你在找的jQuery相关文章