javascript - 如何在 Ajax 错误上抛出 404 错误以定向到默认 404 行为?

标签 javascript jquery asp.net-mvc

使用:ASP.NET MVC 3、JavaScript、jQuery。 web.config 文件设置为处理 HTTP 404 错误。具体来说,它将针对无效 URL(例如 www.mysite.com/INVALIDURL,即未找到 404 页面)提供正确的重定向

问题:有没有办法在 Ajax 错误中默认执行相同的行为?或者换句话说,如何在 ajax 错误中抛出 404“找不到页面”响应。

$.ajax ({ ... })
  .error(function (jqXHR, textStatus, errorThrown) {
     // throw 404 Page not found HTTP error
  }

Edit1:我正在寻找的最终结果是在 Ajax 错误时提供“找不到页面”显示

Edit2:我已经在 web.config 文件中设置了重定向设置,如下所示

  <system.webServer>
    <httpErrors errorMode="Custom">
      <remove statusCode="404" />
      <error statusCode="404" path="/error/404" responseMode="ExecuteURL" />
    </httpErrors>
  </system.webServer>

我希望 ajax.error 默认为该行为,可能吗?

最佳答案

那么 - 您想重定向到 ajax 错误的 404 页面吗?如前所述,您不能抛出 404,但可以重定向到另一个页面。

$.ajax ({ ... })
  .error(function (jqXHR, textStatus, errorThrown) {
     window.location.href = '/My404ErrorPage';
  }

编辑

如果您不希望 URL 更改 - 您很可能需要考虑使用模式对话框/警报框/特殊 div 将此信息传达给用户并将您想要使用的消息放置在那。下面假设 NotFound 是页面上某处的 div 的 id,并利用 jquery UI 作为第一部分,为第二部分利用普通的 ol' 警报框。

$.ajax ({ ... })
  .error(function (jqXHR, textStatus, errorThrown) {
     $('#NotFound').html('Some error message');
     $('#NotFound').Dialog();
     //OR you could do
     alert('Some error message');
  }

关于javascript - 如何在 Ajax 错误上抛出 404 错误以定向到默认 404 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11679064/

相关文章:

javascript - Jquery .text() 不工作

javascript - 如何获取已删除的字符并更新 textarea 中的字符串?

javascript - Vanilla JavaScript : Scroll to Top of Page

javascript - 在 ejs 和 nodejs 中 POST http ://localhost:3000/socket. io/?EIO=3&transport=polling&t=NQUneY3 400(错误请求)

javascript - 如何使用 KARMA 对 React JSX ES6 代码进行单元测试?

c# - 将 Controller 的结果显示到 asp.net mvc c# 中的 View

asp.net-mvc - 如何访问 asp.net mvc 回发 Controller 操作中的 hiddenField 值?

asp.net-mvc - 如何在具有不同 PK 和 FK 的 Fluent API 中配置一对零和一对一关系

asp.net-mvc - 表单提交不提交部分 View

javascript - 在 jasmin 中使用测试 Angular 复选框