我有一些
AJAX调用,通过jQuery.
AJAX方法渲染PartialViewResults.这样做很棒,我的意见让我完全按照我想要的方式呈现.
当我离开页面一段时间并且Forms auth会话到期时,会出现问题.当我点击执行AJAX请求的操作时,它会显示我的div中的登录页面.
解决方法
在Global.asax的Application_EndRequest()方法中设置它
您可以检查请求是否是ajax请求,并检查是否发送HTTP重定向(302),如果是,则我们会想要发送401.
protected void Application_EndRequest() { var context = new HttpContextwrapper(Context); // If we're an ajax request,and doing a 302,then we actually need to do a 401 if (Context.Response.StatusCode == 302 && context.Request.IsAjaxRequest()) { Context.Response.Clear(); Context.Response.StatusCode = 401; } }
然后在您的客户端代码中,在全球可访问的区域:
MyNamespace.handleAjaxError = function (XMLHttpRequest,textStatus,errorThrown) { if (XMLHttpRequest.status == 401) { // perform a redirect to the login page since we're no longer authorized window.location.replace("logout path"); } } else { MyNamespace.displayGeneralError(); } }; $.ajax({ type: "GET",url: userAdmin.addUserActionUrl,success: userAdmin.createuserEditorDialog,error: MyNamespace.handleAjaxError });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。