使用http DELETE杀死用户会话

时间:2013-11-15 09:17:49

标签: javascript html json http rest

我正在建立一个连接到rest-api的网站。用户可以登录网页。我有一个注销按钮,在其后面我需要编写javascript / json / http请求以终止用户会话。这就是我所拥有的,任何人都可以告诉我它是否有意义?

<form action="http://apiaddresshere.com" method="delete" id = "myform">
          <input type = "submit" value="Logout">
        </form>

<script>


var form = document.getElementById("myform");

form.onsubmit = function (e) {
  // stop the regular form submission
  e.preventDefault();


  // construct an HTTP request
  var xhr = new XMLHttpRequest();
  xhr.open(form.method, form.action, true);
  xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');

  // send the null data as JSON
  xhr.send(JSON.stringify());

  xhr.onloadend = function () {
    // done
  };
};


</script>

3 个答案:

答案 0 :(得分:1)

    <a href="javascript:void(0)" onclick="logout()">Logout</a>
    function logout(){
    $.ajax({
      url: "logout.php",
    type:"post",
dataType: 'json'
    }).done(function() {

    });
    }

答案 1 :(得分:1)

你可以张贴到http://apiaddresshere.com/logout。这将更简单和更简单比试图完成HTTP api的一些角落使用更为标准。

简单&amp;标准作品和继续工作,我建议那样:)

上帝只知道代理服务器或企业防火墙将对您的DELETE请求做出什么。但是,嘿,当他们不喜欢它时,该应用程序将无法工作..你将受到责备。

答案 2 :(得分:1)

避免使用logoutlogin URI。有动词,而不是名词。 URI应代表资源,而不是行动。

如果您必须使用会话,请使用

之类的URI
apiaddresshere.com/sessions/23245252354323

或类似的东西。然后,为了“注销”,用户向该会话资源发送DELETE请求。

当然,会话首先不是特别的REST,所以这可能是一个没有实际意义的点。