jquery - 经典 ASP JQuery AJAX 不维护 session

标签 jquery ajax session asp-classic

我正在构建一个系统,使用 JQuery 和 AJAX 调用经典 ASP 页面来处理服务器内容。

该系统需要用户登录。我正在使用 session 来存储用户名。

问题是 session 在默认 20 分钟后超时,并且用户被重定向到登录页面。我假设由于某种原因 AJAX 调用没有维护 session 。

这是我的做法:

当用户登录时,我发布 AJAX 调用,如下所示:

$.ajax({ 
    type: "POST", 
    url: "admin/ajax/signin.asp",
    data: { 
        'username': username,
        'userpassword': userpassword
    },
    cache: false,
    success: function(data, textStatus, jqXHR) {  
        if (jqXHR.getResponseHeader('REQUIRES_AUTH') === '1'){
            $('#failed').show();
        }
        else {
            location.href = "admin/"
        }
    }
});   

signin.asp 根据数据库检查用户详细信息,如果正常,此页面将用户名存储在 session 变量中。

Session("userid") = Request("username")

用户现已登录。

当用户使用系统时,每个页面都会检查每个 AJAX 请求上的 REQUIRES_AUTH header ,并按如下方式处理注销重定向:

/* Check user logged in on every ajax request */
$('body').ajaxComplete(function(event,request,settings){
    if (request.getResponseHeader('REQUIRES_AUTH') === '1'){
        location.href="../signin.html"
    };
}); 
/* End */

使用 AJAX post 调用的每个 ASP 页面都会对 session 进行检查,如果 session 不存在,则会按如下方式设置 REQUIRES_AUTH header :

If (trim(Session("userid")) = "") Then
    'No session so clear variable
    Session.Contents.Remove("userid")
    'Redirect to Login page
    Response.AddHeader "REQUIRES_AUTH", "1"
Else
    Session("userid") = Session("userid")  
End If

我假设使用 Session("userid") = Session("userid") 并且事实上我正在调用一个在服务器上执行某些操作的 ASP 页面,这足以维持 session ,但事实似乎并非如此,非常感谢所有建议。我有什么根本性的错误吗?

最佳答案

您可以在 JavaScript 中设置每 15 分钟自动刷新一次,并隐藏倒计时或在客户端站点 javascript 中传递唯一 token

关于jquery - 经典 ASP JQuery AJAX 不维护 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478412/

相关文章:

javascript - 模板中的模板 Handlebars

javascript - jQuery 显示 setTimeout 定时器

javascript - 使用窗口调整大小功能来保持变量最新?

ajax - 在 Django 中更新表单值而不重新加载页面?

javascript - 当我单击按钮时,它仅在第一个单击时在输出 div 'mouse_move' 上显示带有 jQ​​uery ajax 的图像,但在另一次单击时不显示相同的图像

javascript - 对 Google map API 的 AJAX 请求停止工作

session - 复制 JSESSIONID cookie 时防止复制 session

javascript - 仅显示一次弹出窗口 Jquery、PHP

jquery.css :link of a jquery object

java - 如何在 Spring Boot 中保持登录 session