C# 使用MVC 3低调Javascript处理全局jQuery AJAX错误

C# 使用MVC 3低调Javascript处理全局jQuery AJAX错误,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我的ajax调用有一个全局错误处理程序,如下所示: $.ajaxSetup( { error: function(XMLHttpRequest, textStatus, errorThrown) { alert("error"); } }); @Ajax.ActionLink("Submit", "SubmitQuery", new AjaxOptions { HttpMethod = "POST" }) 我正在做一个ajax调用,如下所示: $.aj

我的ajax调用有一个全局错误处理程序,如下所示:

$.ajaxSetup(
{
    error: function(XMLHttpRequest, textStatus, errorThrown)
    {
        alert("error");
    }
});
@Ajax.ActionLink("Submit", "SubmitQuery", new AjaxOptions { HttpMethod = "POST" })
我正在做一个ajax调用,如下所示:

$.ajaxSetup(
{
    error: function(XMLHttpRequest, textStatus, errorThrown)
    {
        alert("error");
    }
});
@Ajax.ActionLink("Submit", "SubmitQuery", new AjaxOptions { HttpMethod = "POST" })
在控制器操作上,我有一个CustomAuthorized属性,返回:

filterContext.Result = new HttpStatusCodeResult(403, "adsfasd");
当用户未登录时


出于某种原因,我的全局jQuery AJAX错误处理程序没有捕获403错误。

我设法找到了答案

我需要:

filterContext.Result = new ContentResult
{
    ContentType = "text/plain",
    Content = "Access Denied. Invalid user name and/or password."
};

filterContext.HttpContext.Response.Status = "500 ".Replace("\r", " ").Replace("\n", " ");

我设法弄明白了

我需要:

filterContext.Result = new ContentResult
{
    ContentType = "text/plain",
    Content = "Access Denied. Invalid user name and/or password."
};

filterContext.HttpContext.Response.Status = "500 ".Replace("\r", " ").Replace("\n", " ");

我还意识到我可以将一个函数“OnFailure”设置为“OnFailure”,但我认为这将捕获所有错误?是否调用了“success”函数(或OnFailure)?如果是这样的话,如果你尝试一个400错误呢?这就是问题所在,我会想既然我有Ajax设置,我就不需要在失败时使用它,这不是真的吗?在使用不引人注目的ajax时,是否没有全局处理ajax错误的方法?我也意识到我可以将一个函数设置为“OnFailure”,但我认为这将捕获所有错误?是否调用了“success”函数(或OnFailure)?如果是这样的话,如果你尝试一个400错误呢?这就是问题所在,我会想既然我有Ajax设置,我就不需要在失败时使用它,这不是真的吗?在使用不引人注目的ajax时,是否无法全局处理ajax错误?