我想使用来自JQuery(2.0.2)onreadystatechange
的(基础)XMLHttpRequest
的{{1}}事件来触发同步ajax请求,以便我可以显示准确的状态指示长期运行请求的最终用户。但似乎已从最新版本的JQuery中删除了此功能(请参阅here),使具有异步Web请求的微调器仅使用 选项来向用户表示活动。
使用$.ajax(...)
我会做类似下面的事情(尽管我仍然不想使用JQuery),JQuery中是否还有一种方法可以访问readystate更改函数?是否有一个暴露XMLHttpRequest
事件的插件?
onreadystatechange
答案 0 :(得分:6)
var _orgAjax = jQuery.ajaxSettings.xhr;
jQuery.ajaxSettings.xhr = function () {
var xhr = _orgAjax();
xhr.onreadystatechange = function() {
//you can log xhr.readystate here
if( xhr.readyState == 4 ) {
$("div").html("Done");
}
}
return xhr;
};
$(function(){
$("<div>Loading</div>").appendTo($("body"));
var anticache = "?anticache=" + new Date().getTime();
$.ajax({
url: "http://fiddle.jshell.net",
error: function() {
console.log("error");
}
});
});
演示:: jsFiddle