将我重定向到jQuery.ajax()上的默认错误页错误:
我写了一个小ruby Sinatra应用程序。有时会抛出错误(例如,数据库连接不存在)。但是,默认索引页始终有效(无需数据库连接) 我使用jQuery来处理触发数据创建的请求。但是当发生后端错误时,我想显示默认的错误页面。这不起作用,因为jQuery创建了请求,只是忽略了错误(因此,当数据库不可用时不会发生任何事情)。我的代码如下所示:将我重定向到jQuery.ajax()上的默认错误页错误:,jquery,ruby,ajax,sinatra,Jquery,Ruby,Ajax,Sinatra,我写了一个小ruby Sinatra应用程序。有时会抛出错误(例如,数据库连接不存在)。但是,默认索引页始终有效(无需数据库连接) 我使用jQuery来处理触发数据创建的请求。但是当发生后端错误时,我想显示默认的错误页面。这不起作用,因为jQuery创建了请求,只是忽略了错误(因此,当数据库不可用时不会发生任何事情)。我的代码如下所示: $(document).ready(function() { $("form").bind("submit", function(event) {
$(document).ready(function() {
$("form").bind("submit", function(event) {
event.preventDefault();
$.ajax({
type:"POST",
url:"/new",
data:$("#form").serialize(),
dataType:"json",
success:function(data){
// handling of input data
},
error:function(xhr, ajaxOptions, thrownError){
// show default error page
}
});
});
});
通过这样做,我成功地实现了我想要的:
error:function(xhr, ajaxOptions, thrownError){
alert something;
}
但我想这只是因为语法错误(正确的语法应该是alert(“something”);)
是否有正确的方法重定向到默认错误页面?尝试以下方法:
error:function(xhr, ajaxOptions, thrownError){
// show default error page
window.location.assign("error.html");
}
查看默认的ajax设置,这样您就不必为每个ajax请求都这样做了 如果您有一个ajax请求,而您的数据库不可用,则不会出现ajax错误,因为仍然可以调用该页面。如果成功页面上的响应包含“错误”或其他内容,您可能需要检查它?或者将头代码更改为另一个,然后更改为200,以便调用Ajax请求的错误
$.ajaxSetup({
error : function(){
document.location = "/errorpage";
}
});