2013-10-06 25 views
1

有人可以告诉我如何取消原生javacript中的Ajax请求,并使用相同的原生javascript来取消请求。如何取消已使用本机javascript启动的AJAX请求

我打算提供一个脚本,我正在编写一个后台任务来检查请求是否在特定时间内完成,以及它是否尚未取消请求,如果它仍然在等待。

所以我看过的所有脚本都标记为Javascript,但实际上是JQuery,我根本不感兴趣,并且宁愿写我自己的方法而不使用我没有兴趣使用的东西。

所以有一点帮助表示赞赏。

这样做我使用像

xmlHTTP.cancel(); 

xmlHTTP.kill(); 

我知道,jQuery有中止,但是这是一个本机命令的别名的命令,使指针将不胜感激。

+0

你能展示一些代码吗? –

+0

本地方法中止... jquery的中止调用可能只是调用[XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)上的方法 –

+0

无需代码,我只是想知道什么是正确的命令来取消正在进行的AJAX请求。 原因是如果服务器花费很长时间来响应,过程被取消,然后在以后再次尝试,现在回答这个问题,我所做的当前AJAX脚本工作得很好。 这是一个个人项目,将基于我家的局域网。 –

回答

2

abort() - 它在文档中。

+0

感谢您的回复,这是我使用谷歌提出的每个查询都会出现的JQuery和abort()出现在它的表面上以成为JQuery的一部分。 –

-2

我建议你使用jQuery并使用jQuery.ajax方法来初始化XHR调用。您可以使用abort方法来杀死现有的XHR呼叫。

var xhr = null; 

if (xhr != null) { 
    xhr.abort(); //If xhr is not null then abort before init new XHR call 
} 

var xhr = jQuery.ajax({ 
     cache: false, 
     url: "http://www.example.org/ajax.php", 
     dataType: "json", 
     data: { 
      param1: "", 
      param2: "" 
     }, 
     type: "POST", 
     crossDomain: true, 
     beforeSend: function (jqXHR, settings) { 
      //TODO 
     }, 
     success: function (data) { 
      //TODO 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      //TODO 
     }, 
     complete: function (jqXHR, textStatus) { 
      //TODO 

      xhr = null; //nulify xhr once we finish XHR call 
     } 
    }); 
+0

-1:OP明确提到,两次,他们不希望这个jQuery版本。 – millimoose