jquery - 将我重定向到 jQuery .ajax() 错误 : 上的默认错误页面

标签 jquery ruby ajax sinatra

我编写了一个小型的 ruby​​ Sinatra 应用程序。有时会抛出错误(例如数据库连接不存在)。但是,默认索引页始终有效(无需数据库连接)。

我使用 jQuery 来处理触发数据创建的请求。但是当后端发生错误时,我想显示默认的错误页面。这不起作用,因为 jQuery 创建请求并忽略错误(因此当数据库不可用时什么也不会发生)。我的代码看起来像这样:

$(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");)

是否有正确的方法来重定向到默认错误页面?

最佳答案

查看默认的 ajax 设置,这样您就不必为发出的每个 Ajax 请求执行此操作。 http://api.jquery.com/jQuery.ajaxSetup/

$.ajaxSetup({
    error : function(){
        document.location = "/errorpage";
    }
 });

如果您有一个ajax请求并且您的数据库不可用,则不会出现Ajax错误,因为页面仍然可以被调用。也许您必须检查成功页面上的响应是否包含“ERROR”或其他内容?或者将 header 代码更改为 200 以外的其他代码,以便调用 Ajax 请求的错误。

关于jquery - 将我重定向到 jQuery .ajax() 错误 : 上的默认错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224579/

相关文章:

jQuery(this).val() 不返回所选选项的值

css - 使用ajax只显示隐藏图像的一个子集

ruby - 最大值和最小值...需要方法返回两个变量值

ruby - 自动网页抓取问题

ruby-on-rails - RSpec:如何期望两个不同对象上的有序消息?

javascript - 从单独的 JavaScript 文件调用 PHP 文件中的方法

jquery - 关于 Ruby On Rails 中的 AJAX 有什么好的介绍吗?

php - 使用 Codeigniter 处理 ajax 响应

javascript - 鼠标左键单击与 JavaScript 中的右键单击例程发生冲突

javascript - 检查数组键是否为数字