我有一个使用Forms Authentication以asp.netmvc编写的后端服务器。当用户未通过身份验证时,服务器将自动发送302重定向到“登录”操作并返回“登录”页面。
在客户端,我有一个项目列表。只有经过身份验证的用户才能访问此列表。在页面上,我有一个使用Ajax(jQuery的$ .ajax函数)刷新列表的按钮。
现在,我的问题是身份验证票证超时并且用户单击“刷新”按钮时:
我想要的是当身份验证票证超时并且用户单击“刷新”按钮时,我应该能够检测到该错误并显示一条消息,要求用户登录。
我试图通过在登录操作中添加自定义标头(IS_LOGIN)并在我的Ajax响应中进行检查来解决此问题。但这不是一个好的解决方案。
所以我的问题是:
感谢您的任何答复。
当它是XHR时,您不应重定向该呼叫,而应使用a响应401Unauthorized
并在回调中处理该呼叫。我不知道ASP.NET,但是我对SpringSecurity做过类似的事情。
继承人的概念:
X-Requested-With: XMLHttpRequest
401 Unauthorized
最重要的是,在某些情况下,XHR调用需要与其他HTTP请求进行不同的处理。仅当同一资源位于另一个位置时,才应重定向XHR。
您无法使用XHR回调处理重定向,因为浏览器会自动处理重定向。您将只取回重定向位置的内容。
我在我的应用程序上安装了一个服务工作者,它安装得很好,激活得很好,缓存也可以。 但当我点击302页面时,缓存完成后,它会告诉我: http://localhost:8000/form/的Fetch事件导致网络错误响应:重定向响应用于重定向模式不是“跟随”的请求。 我已经读了很多关于这个主题的文章,我在这里查阅了一些帖子:服务人员破坏301重定向,还有那里https://github.com/w3c
问题内容: 我正在从域A到域B进行AJAX呼叫。 我的域B检查A是否在允许的域列表中,并将设置为域A。到目前为止,一切都很好。 域B通过使用标头向域C发送302重定向来响应请求。 AJAX调用遵循重定向到域C的操作,但具有标头: 。 在重定向之后,我希望将标头设置为域A。 谁能向我解释为什么将源设置为域A而不是域A? 例 从域A到B的请求 来自网域B的回应: AJAX调用将重定向到域C: 问题答案
我正在尝试使用SpringREST模板进行post请求以登录。 我的ResponseEntity状态是302,我想按照此请求获取正文响应,因为我没有获取此请求的正文。 我能做些什么来解决这个问题?!
我正在执行从域 A 到域 B 的 AJAX 调用。 我的域 B 检查 A 是否在允许的域列表中,并将设置为域 A。目前为止,一切都好。 域 B 通过使用标头向域 C 发送 302 重定向来响应请求。 AJAX 调用遵循重定向到域 C,但具有标头:。 我希望在重定向后将标头设置为域 A。 有人能解释一下为什么原点设置为<code>null</code>而不是域A吗? 示例 > 从域 A 到 B 的请
问题内容: 我正在将一些数据发布到正在回答302移动临时的服务器上。 我希望HttpClient遵循重定向并自动获取新位置,因为我相信这是HttpClient的默认行为。但是,我得到一个例外,而不是按照重定向:( 这是相关的代码,任何想法都将不胜感激: 问题答案: HttpClient的默认行为符合HTTP规范(RFC 2616)的要求 您可以通过子类化DefaultRedirectStrateg
11.7. 处理重定向 你可以使用两种不同的自定义 URL 头信息来处理永久重定向和临时重定向。 首先, 让我们来看看重定向处理的必要性。 例 11.10. 没有重定向处理的情况下,访问 web 服务 >>> import urllib2, httplib >>> httplib.HTTPConnection.debuglevel = 1 >>> request = url