【发布时间】:2012-02-06 01:38:31
【问题描述】:
我有一个场景,我必须使用“表单身份验证”处理 ajax 请求的身份验证。根据我之前的 stackoverflow 帖子的一些搜索和帮助,我决定使用here 中描述的方法。
这个想法是为未经身份验证的请求发回 401 响应,然后在 AJAX 错误处理程序中处理它。所以我在我的 ASP.net MVC3 布局页面中有一个 AJAX 错误处理程序,当它收到未经身份验证的 ajax 请求的 401 响应时,它会将浏览器重定向到登录页面。这是 ajax 错误处理程序。
$(document).ajaxError(function (event, jqXHR, ajaxSettings, thrownError) {
if (jqXHR.status == "401") {
window.location.replace(loginUrl);
}
....
});
这在我的本地 IIS 7.5 服务器上运行良好。但不幸的是,在托管我的网站的服务器上,在 AJAX 错误处理程序运行并将浏览器重定向到登录页面之前,我会在未经身份验证的 ajax 请求(例如会话超时)上收到基本身份验证弹出窗口。当我通过按取消按钮取消“需要身份验证”弹出窗口时,AJAX 错误处理程序然后运行,我被重定向到登录页面。
那么,为什么浏览器会在运行 AJAX 错误处理程序之前显示身份验证弹出窗口?
编辑:托管服务器正在运行 IIS 6。
【问题讨论】:
-
小心点击“此处”上方此问题文本中的链接...它报告木马感染。
标签: asp.net-mvc-3 jquery