如何在http请求中关闭会话

时间:2016-03-04 17:34:22

标签: javascript session xmlhttprequest

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

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也无效。任何想法如何在请求后关闭会话

2 个答案:

答案 0 :(得分:0)

问题可能是您已应用async选项。该选项已被弃用。我已经完成的研究表明,.abort();应该有效。

第一

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

成:

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

然后,它应该工作:

xhr.abort();

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

或者你可以尝试将xhr变量归零。

xhr = null;

答案 1 :(得分:0)

xhr.withCredentials = true;

删除后,一切正常。