1

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

问题:有没有办法在 Ajax 错误中默认为相同的行为?或者换句话说,我如何在 ajax 错误中抛出 404 'Page not found' 响应。

$.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 默认为该行为,这可能吗?

4

2 回答 2

0

所以 - 你想重定向到 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');
  }
于 2012-07-26T22:44:33.470 回答
0

尝试使用“ajaxSetup”设置 js 重定向到错误页面。例如:

$.ajaxSetup({
    beforeSend  : function(){showLoader()},
    complete    : function(){hideLoader()},
    error       : function(){redirTo404()}
});

所以它将使用它作为所有ajax调用的默认值

于 2012-07-26T22:49:49.227 回答