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

时间:2017-07-26 15:09:09

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

代码似乎正常工作,除了重定向到主页URL。如何将ajax重定向到主页URL。

JS功能

it("checks version number correctly", () => {
    var store = mockStore(initialState);

    const tree = renderer.create(
        <Provider store={store}>
            <App/>
        </Provider>
    )

    expect(tree.needsUpdate("1.0.0")).toBe(true)
})

在控制器功能

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));
    }

1 个答案:

答案 0 :(得分:1)

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

我喜欢把它想象成在两条彼此平行的独立道路上有两辆独立的汽车。当你从第一辆车发出ajax请求时,你基本上会对另一条路上的另一辆车大喊大叫,告诉他们做点什么。如果你告诉那辆车向左转,它会向左转,但是第一辆车不会改变方向,只是继续前进。

为了让您的应用程序在第一辆仍然直行的汽车中实际执行重定向,您需要从第二辆汽车得到某种类型的响应,可能会说类似于&#34;我可以向左转,但它对你没有任何好处。为什么不转而离开呢?&#34;。

在代码中,这可以通过而不是在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