我正在建立一个连接到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>
答案 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)
避免使用logout
和login
URI。有动词,而不是名词。 URI应代表资源,而不是行动。
如果您必须使用会话,请使用
之类的URIapiaddresshere.com/sessions/23245252354323
或类似的东西。然后,为了“注销”,用户向该会话资源发送DELETE
请求。
当然,会话首先不是特别的REST,所以这可能是一个没有实际意义的点。