jquery - 如果登录了ajax测试?

Mat*_*hew 3 jquery

所以我已经有了网站工作(我不是从头开始工作).我遇到的问题是,只有在您登录时才会提供大量内容(几乎所有内容).所以有时我会有一个模态弹出窗口,它会检索(使用ajax)要显示的内容.

在我的服务器端代码中,如果某人未登录,则会将其重定向到登录页面.

这会产生一种奇怪的效果,就好像有人在页面上并且不再登录,然后弹出的模式会尝试显示登录页面.

有什么可能来解决这个问题?

我唯一能想到的是有一个url来检查他们是否已登录并返回它,并且随着每个ajax请求,我可以检查他们是否已登录并且Javascript可以相应地执行操作.

我希望还有其他一些可能性.

Nik*_*bak 5

我已经解决了这个问题.

  1. 在服务器端,根据请求是否为ajax,处理身份验证错误会有所不同.在第一种情况下 - 返回401'未经身份验证'的响应,在第二种情况下 - 重定向到登录页面.
  2. 在客户端,注册常见的jquery ajax错误处理程序以捕获401错误并将用户重定向到登录页面.

    $.ajaxSetup({
        error: function(event, request, options, error) {
            switch (event.status) {
                case 401: common.setLocation('/sign-in'); break;
                ...
            }
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的解决方案,您甚至不必修改每个特定的请求,所以希望它有所帮助.