我在 asp.net MVC 应用程序上使用表单身份验证,并使用 jquery 和 ajax 创建丰富的用户界面。一些用户倾向于将页面打开数小时,并且他们的登录会话按预期到期。如果用户单击链接或重新加载页面,则会按预期返回登录屏幕。如果他们单击按钮或触发 ajax 调用,则 ajax 调用将返回登录 html 而不是预期的 html 或 JASON 结果。导致页面出现半个登录屏幕的混乱页面。
因为我已经编写了很多 ajax 调用,所以我想我可以扩展或覆盖默认的 .done 事件,以在继续我编写的任何事件之前添加对登录屏幕的检查。
例如我有这个功能:
function CallAjax() {
$.ajax({type: "GET", url: "foo" })
.done(function (data) { $('#result').val(data); });
}
是否可以覆盖 .done 的默认实现,以便在不重写此函数的情况下进行检查?我的检查可能会查看结果是否为 html 响应,如果是,则搜索“登录”以查看其是否为登录页面。