【问题标题】:Global jQuery AJAX error handling with MVC 3 unobtrusive Javascript使用 MVC 3 不显眼的 Javascript 处理全局 jQuery AJAX 错误
【发布时间】:2011-03-06 16:57:18
【问题描述】:

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

$.ajaxSetup(
{
    error: function(XMLHttpRequest, textStatus, errorThrown)
    {
        alert("error");
    }
});

我正在像这样进行 ajax 调用:

@Ajax.ActionLink("Submit", "SubmitQuery", new AjaxOptions { HttpMethod = "POST" })

在控制器操作上,我有一个返回的 CustomAuthorizeAttribute:

filterContext.Result = new HttpStatusCodeResult(403, "adsfasd");

当用户未登录时。

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

【问题讨论】:

  • 我也意识到我可以放一个函数“OnFailure”,但我认为这会捕获所有错误?
  • 是否调用了“成功”函数(或 onFailure)?如果是这样,如果您改为尝试 400 错误会怎样?
  • 事情就是这样,我会认为既然我有不需要OnFailure的ajaxSetup,这不是真的吗?使用不显眼的 ajax 时有没有办法全局处理 ajax 错误?

标签: c# jquery asp.net-mvc


【解决方案1】:

我设法弄明白了。

我需要:

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", " ");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2012-03-16
    • 2011-07-09
    • 2012-08-11
    相关资源
    最近更新 更多