在中止先前的$ .ajax()调用之前,如何测试是否存在活动的XMLHttpRequest对象?

时间:2010-12-21 16:46:21

标签: javascript jquery ajax xmlhttprequest abort

如果我调用$.ajax()方法并将XMLHttpRequest存储到变量vXMLHttpRequest中,在调用abort之前检查先前XMLHttpRequest是否存在的正确方法是什么? ?

var vXMLHttpRequest = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name=John&location=Boston",
    success: function(msg){
       alert( "Data Saved: " + msg );
    }
});

我假设只有存在活动的事先XMLHttpRequest 时才会杀死请求:

if(vXMLHttpRequest)
{
  vXMLHttpRequest.abort();
}

这是对的还是有更好的语法?例如:

if(vXMLHttpRequest!=null)
{
  vXMLHttpRequest.abort();
}

2 个答案:

答案 0 :(得分:1)

第一个可以工作,但是你也可以检查请求的readyState属性:如果它是4,它已经完成,所以不需要中止。

答案 1 :(得分:1)

你的权利这是有效的

if(vXMLHttpRequest)
{
  vXMLHttpRequest.abort();
}