繁体   English   中英

在Rails中的AJAX请求后重定向到html响应

[英]Redirecting to html response after AJAX request in rails

代码似乎可以正常工作,除了重定向到原始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

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

我喜欢将其视为在两条平行的道路上分别行驶两辆独立的汽车。 当您从第一辆车发出ajax请求时,您实际上是在大喊大叫地指着另一条路上的另一辆车告诉他们去做某事。 如果您告诉那辆车向左转,它就会向左转,但是第一辆车并没有改变方向,它只会继续前进。

为了让您的应用实际在仍在行驶的第一辆车中执行重定向,您需要从第二辆车中获得某种响应,该响应可能会说“我可以左转,但它不会给您带来任何好处”你为什么不左转呢?”

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

像这样的事情可能更合适...

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

另请参阅另一篇有关AJAX响应后重定向的堆栈溢出文章。

jQuery Ajax调用后如何管理重定向请求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM