使用 http 删除终止用户会话
Killing user session using http DELETE
我正在开发一个连接到 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>
你可以
直接发布到http://apiaddresshere.com/logout
。 这将比尝试实现HTTP api的一些极端情况使用要简单得多,也更标准。
简单和标准工作并继续工作,我建议这样做:)
上帝只知道代理服务器或公司防火墙会对您的 DELETE 请求进行什么处理。但是,嘿,当他们不喜欢它时,该应用程序将无法运行。你会理所当然地受到指责。
<a href="javascript:void(0)" onclick="logout()">Logout</a>
function logout(){
$.ajax({
url: "logout.php",
type:"post",
dataType: 'json'
}).done(function() {
});
}
避免logout
和login
URI。有动词,不是名词。URI 应表示资源,而不是操作。
如果必须让会话使用类似 URI
apiaddresshere.com/sessions/23245252354323
或类似的东西。然后,要"注销",用户向该会话资源发送DELETE
请求。
当然,会话首先并不是特别RESTful,所以这可能是一个有争议的问题。
相关文章:
- DreamFactory REST API POST休息/用户/会话请求总是在IE9中返回错误
- JavaScript 中的用户会话跟踪
- Zkoss:如何通知用户会话超时或与服务器的连接丢失
- 可以'在尝试使用chai请求代理为测试维护用户会话时,t在发送标头后设置标头出错
- 如何将用户会话保存在PHP中的一个变量中,以便在JavaScript中引用
- 使用 http 删除终止用户会话
- 仅在某些请求上保存用户会话
- 如何在用户会话的辅助页面中获取 GA utm 参数
- 将响应式文件管理器与创建用户会话配合使用
- 如何安全地存储和访问用户会话数据
- 无法在量角器测试中保持用户会话活动状态
- 从谷歌分析cookie获取当前用户/会话页面视图
- Angular应用程序检查用户会话是否已过期或持续注销
- 如何在Parse.com中将数据保存到用户会话
- 跟踪器用户会话与Cookie,而不是像谷歌JS
- 使用selenium网络驱动程序更新用户会话
- 使用Javascript的Android应用程序中的用户会话
- 提取序列化的用户会话数据
- 存储用户会话:node.js, express, mongoose-auth
- 在javascript中访问用户会话数据的麻烦