2016-03-04 51 views
0

我试图在请求完成后尽快结束会话,但会话保持打开状态,因为当我在新选项卡上打开URL时,它与用户登录,我正在请求,即使我使用不同的用户登录,在发出http请求后,用户在http请求中变为一个。我想要的是尽快提出请求并重置表单,应该关闭会话。如何在http请求中关闭会话

var xhr = new XMLHttpRequest(); 
xhr.withCredentials = true; 

xhr.addEventListener("readystatechange", function() { 
    if (this.readyState === 4 && this.status === 201) { 
     //xhr.abort(); not working 

     //xhr.open("POST", "URL"); 
     //xhr.setRequestHeader("authorization", "Basic aaaaa"); not working 
    form.reset(); 
    } 
    if (this.status === 404) { 
    form.reset(); 
    } 
}); 

xhr.open("POST", "URL"); 
xhr.setRequestHeader("accept", "application/json"); 
xhr.setRequestHeader("content-type", "application/json"); 
xhr.setRequestHeader("authorization", "Basic something"); 
xhr.setRequestHeader("cache-control", "no-cache"); 

xhr.send(data); 

使用xhr.abort也不起作用。任何想法如何在请求后关闭会话

回答

0
xhr.withCredentials = true; 

删除这毕竟是伟大的工作。

0

问题可能是您应用了async选项。该选项已被弃用。我所做的研究表明,.abort();应该可以工作。

第一:

xhr.open("POST", "URL",true); 

到:

xhr.open("POST", "URL"); 

然后,它应该工作:

xhr.abort(); 

http://help.dottoro.com/ljomfaxv.php

或者,您也可以尝试归零的XHR VAR iable。

xhr = null; 
+0

仍然无法正常工作你可以告诉我在哪里申请这个,因为如果我申请放弃下面发送请求取消发送之前,或者是否有任何其他方式来这样做。当我尝试使用Ajax来执行请求时,它一次创建2张票。请帮忙 – Ratish