繁体   English   中英

检查jQuery AJAX请求状态

[英]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;
   }
   // ...
});

你几乎就在那里, statusXMLHttpRequest一个属性,而不是一个函数。 jQuery.ajax返回XMLHttpRequest的对象。 正如你已经做的那样坚持下去:

var req = $.ajax(..);

然后调用status需要的时候那个对象上,而不是status()

req.status

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM