【发布时间】:2014-02-16 01:15:00
【问题描述】:
我在我的 ruby on rails 应用程序中使用“设计”进行密码验证。一旦我成功登录并关闭浏览器并打开一个新的浏览器窗口,我仍然登录。假设我正在使用 Chrome,我关闭所有 chrome 实例,然后打开一个新实例。我还在登录。我在做IE和Firefox的时候也是这样。
我会假设关闭窗口并打开一个新窗口应该在服务器和浏览器之间建立一个新会话,不是吗?如果不是,我该如何实现?
我曾经尝试在浏览器窗口的onbeforeunload 事件上单击注销按钮,但它不起作用,因为它在任何表单提交或链接单击时注销应用程序。
window.onbeforeunload = function() {
$('#logout_cls').click();
};
并尝试发送AJAX 请求到会话控制器销毁操作以清除会话。
jQuery(window).bind(
"close",
function(event) {
$.ajax({
type: 'DELETE',
dataType: 'json',
url: $('#logout_cls').attr('href')
});
});
但这一切都不起作用。
【问题讨论】:
标签: javascript ruby-on-rails ruby session devise