Kha*_* TO 41 javascript ajax asp.net-mvc jquery http-headers
我有一个使用Forms Authentication在asp.net mvc中编写的后端服务器.未对用户进行身份验证时,服务器将自动将302重定向发送到"登录"操作并返回"登录"页面.
在客户端,我有一个项目列表.此列表仅供经过身份验证的用户访问.在页面上,我有一个使用Ajax刷新列表的按钮(jQuery的$ .ajax函数).
现在,问题是当身份验证票超时并且用户单击"刷新"按钮时:
我想是当身份验证票证超时和用户点击刷新按钮,我应该能够检测并显示一条消息,询问用户登录.
我尝试通过在Login操作中添加自定义标头(IS_LOGIN)来解决此问题,并在我的ajax响应中检查它.但这不是一个好的解决方案.
所以我的问题是:
谢谢你的回复.
Bar*_*art 39
当XHR是XHR时,你不应该重定向呼叫,而是401 Unauthorized
在回调中用a响应并处理它.我不知道ASP.NET,但我做了类似的Spring Security.
继承人的理念:
X-Requested-With: XMLHttpRequest
401 Unauthorized
最重要的是,在某些情况下,XHR调用需要以与其他HTTP请求不同的方式处理.如果同一资源位于其他位置,则只应重定向XHR.
您无法使用XHR回调处理重定向,因为浏览器会自动处理它们.您只能返回重定向位置的内容.