使用: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默认为该行为,是否可能?
答案 0 :(得分: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');
}
答案 1 :(得分:0)
尝试使用“ajaxSetup”将js重定向设置为错误页面。例如:
$.ajaxSetup({
beforeSend : function(){showLoader()},
complete : function(){hideLoader()},
error : function(){redirTo404()}
});
所以它将使用它作为所有ajax调用的默认值