如何在Ajax错误上抛出404错误,以便指向默认的404行为
How to throw a 404 error on Ajax error in order to direct to default 404 behavior?
工作环境:ASP.NET MVC 3、JavaScript、jQuery。web.config文件设置为处理HTTP 404错误。具体而言,它将在www.mysite.com/INVALIDURL(即未找到404页面)等无效URL时提供正确的重定向
问题:有没有一种方法可以默认Ajax错误中的相同行为?换句话说,如何在ajax错误中抛出404"未找到页面"响应。
$.ajax ({ ... })
.error(function (jqXHR, textStatus, errorThrown) {
// throw 404 Page not found HTTP error
}
第1版:我想要的最终结果是在Ajax错误时提供一个"找不到页面"的显示
第2版:我在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’alert框。
$.ajax ({ ... })
.error(function (jqXHR, textStatus, errorThrown) {
$('#NotFound').html('Some error message');
$('#NotFound').Dialog();
//OR you could do
alert('Some error message');
}
尝试使用"ajaxSetup"设置js重定向到错误页面。例如:
$.ajaxSetup({
beforeSend : function(){showLoader()},
complete : function(){hideLoader()},
error : function(){redirTo404()}
});
因此它将使用它作为所有ajax调用的默认值
相关文章:
- 在AngularJs中隐藏默认错误消息
- 具有默认参数值的 ES6 类构造函数上的 NodeJS 错误
- 如何在Ajax错误上抛出404错误,以便指向默认的404行为
- JayData 上的默认错误回调
- 如何用“重定向”来重定向网页;http错误404”;自动切换到默认网页
- jspm强制错误的默认值
- 通过在默认值中指定错误值来避免陷阱
- Javascript开关情况-导致错误的默认选项
- 如何只有在所有默认项都通过且没有错误后才能运行Gulp任务
- angular js中的默认错误处理程序
- DataTables:未捕获类型错误:无法读取属性'默认'的未定义
- jQuery promise的默认错误函数
- 骨干网默认错误获取功能
- 错误:github推送后未指定默认引擎,也未提供扩展
- Angular:未处理http错误的默认处理程序
- 在某些目录级别内的默认登陆页面出现404错误
- 协议重定向错误地将React JS应用程序路由到IE9的默认页面
- IE8中的Magento产品页面:添加到购物车的增量默认值,忽略数量字段.Form.js第266行错误
- 为什么在使用webpack和babel时,使用指定的export导入默认的export会导致错误?
- 覆盖匹配器的默认茉莉错误消息