dim*_*nux 6 jquery xmlhttprequest jquery-1.5
我的代码在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);
....
Run Code Online (Sandbox Code Playgroud)
我知道在1.5还没有真正的xhr - 只是jqXHR高级抽象,似乎是jqXHR没有上传属性.
问题:如何在jQuery 1.5中获得纯(旧)xhr对象?
Rap*_*ert 12
如果您的beforeSend是全球性的:
var oldXHR = jQuery.ajaxSettings.xhr;
jQuery.ajaxSettings.xhr = function() {
var xhr = oldXHR();
if(xhr instanceof window.XMLHttpRequest) {
xhr.upload.addEventListener('progress', on_progress, false);
xhr.upload.addEventListener('load', on_loaded, false);
xhr.addEventListener('abort', on_abort, false);
}
return xhr;
};
Run Code Online (Sandbox Code Playgroud)
如果您的beforeSend特定于特定请求:
$.ajax({
xhr: function() {
var xhr = jQuery.ajaxSettings.xhr();
if(xhr instanceof window.XMLHttpRequest) {
xhr.upload.addEventListener('progress', on_progress, false);
xhr.upload.addEventListener('load', on_loaded, false);
xhr.addEventListener('abort', on_abort, false);
}
return xhr;
}
});
Run Code Online (Sandbox Code Playgroud)