【发布时间】:2015-03-09 06:30:31
【问题描述】:
为了在 Ajax 请求会话超时时重定向用户登录页面,我实现了以下自定义属性,
Unauthorize 请求相关代码如下,
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.HttpContext.Response.StatusCode = 403;
filterContext.Result = new JsonResult
{
Data = new
{
Error = "SessionTimeOut"
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
filterContext.HttpContext.Response.End();
}
....................
这适用于 ajax 请求 ($.ajax)。
但 filterContext.HttpContext.Request.IsAjaxRequest() 无法将 XMLHttp 请求识别为 ajax 请求。
var xhr = new XMLHttpRequest();
xhr.open('POST', "...URL");
xhr.send(formdata);
有没有人遇到过类似的问题?对此有什么解决方案?
【问题讨论】:
标签: c# asp.net-mvc asp.net-ajax