[英]Checking jQuery AJAX Request Status
我通过jQuery做2个不同的ajax请求,我必须检查另一个是否有效。 我怎样才能做到这一点 ?
我的ajax请求中的一个示例:
active_project_categories_ajax = $.ajax(
{
url: "/ajax/get_skill_list",
dataType: 'json',
......
});
我需要这样的东西:active_project_categories_ajax.status()
既然你要回到XMLHttpRequest对象,你总能看到
active_project_categories_ajax.readyState
active_project_categories_ajax.status
readyState需要为4才能完成(成功或错误)。 所以如果它小于4,那么它仍然是活跃的。
这是readyState:
// states
const unsigned short UNSENT = 0;
const unsigned short OPENED = 1;
const unsigned short HEADERS_RECEIVED = 2;
const unsigned short LOADING = 3;
const unsigned short DONE = 4;
引用自: http : //www.w3.org/TR/XMLHttpRequest/#the-xmlhttprequest-interface
在readyState变为4之前,您无法查看状态。否则可能会引发异常。 (实际上,我写了一个返回1MB数据的php文件......当readyState为3时,状态也是200.如果readyState也停在2,我怀疑状态为200)。
你可以通过订阅AJAX事件和更新状态指示器来做到这一点:
var status;
$.ajax({
beforeSend: function(){
status = 1;
},
complete: function(){
status = 2;
}
// ...
});
你几乎就在那里, status
是XMLHttpRequest
一个属性,而不是一个函数。 jQuery.ajax
返回XMLHttpRequest
的对象。 正如你已经做的那样坚持下去:
var req = $.ajax(..);
然后调用status
需要的时候那个对象上,而不是status()
req.status
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.