【问题标题】:Redirecting to html response after AJAX request in rails在rails中的AJAX请求后重定向到html响应
【发布时间】:2017-07-26 15:09:08
【问题描述】:

除了重定向到主页 URL 之外,代码似乎可以正常工作。如何使 ajax 重定向到主页 URL。

JS函数

func1: function(dest_board, copy_option, member_option){
      $.ajax({
        url: "get_values",
        type: "POST",
        data: {new_board: dest_board, copy_option: copy_option, member_option: member_option}
      }).success($.proxy(function(data, xhr) {
      },this));
    }

在控制器功能中

respond_to do |format|
      format.html {
        redirect_to home_url
      }
end

【问题讨论】:

    标签: javascript ajax ruby-on-rails-4 backbone.js


    【解决方案1】:

    当您在 AJAX 响应中执行重定向时,您实际上是在重定向响应本身,而不是从哪个页面发出请求。

    我喜欢将其视为在 2 条相互平行的独立道路上行驶的 2 辆独立汽车。当您从第一辆车发出 ajax 请求时,您实际上是在向另一辆车上的另一辆车大喊大叫,告诉他们做点什么。如果你告诉那辆车左转,它会左转,但第一辆车不会改变方向,它只是继续前进。

    为了让您的应用程序在仍然直行的第一辆车中实际执行重定向,您需要从第二辆车获得某种响应,可能会说“我可以左转,但它不行你有什么好处。你为什么不向左转呢?”。

    在代码中,这可以通过在 Rails 控制器中执行重定向而不是在 AJAX 响应中执行重定向来表示。

    这样的东西可能更合适......

    .success($.proxy(function(data, xhr) {
        window.location.replace("/home");
    },this));
    

    另请参阅有关 AJAX 响应后重定向的另一篇 Stack Overflow 文章。

    How to manage a redirect request after a jQuery Ajax call

    【讨论】:

    • 我使用了链接中给出的代码。它就像一个魅力。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2019-02-13
    • 1970-01-01
    • 2012-09-12
    相关资源
    最近更新 更多