0

我正在一个连接到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>
4

3 回答 3

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

    });
    }
于 2013-11-15T09:26:53.723 回答
1

你可以只发布到http://apiaddresshere.com/logout. 这将比尝试使用 HTTP api 的一些极端情况更简单、更标准。

简单和标准的作品并继续工作,我建议这样做:)

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

于 2013-11-15T09:27:06.243 回答
1

避免logoutloginURI。有动词,没有名词。URI 应该代表资源,而不是操作。

如果您必须进行会话,请使用类似的 URI

apiaddresshere.com/sessions/23245252354323

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

当然,会话一开始并不是特别 RESTful,所以这可能是一个有争议的问题。

于 2013-11-15T10:12:03.190 回答