Rails将GET响应作为HTML返回,而不是重定向

时间:2015-04-19 16:32:51

标签: javascript jquery ruby-on-rails ruby

运行以下代码显示Controller和View正在正确接收和解析JSON,并返回HTML。 (这可以通过回调函数中的警报来看到。)

但是,我想要的是将浏览器重定向到/ json_test / main,而不是仅仅接收响应中的HTML。

控制器:

class JsonTestController < ApplicationController
  def main
    @postData = params[:scores]
  end
  def test
  end
end

main.html.erb:

<h1>JsonTest#main</h1>
<p>Find me in app/views/json_test/main.html.erb</p>

<% @postData.each do |key, value| %>
    <p><%= key %> : <%= value %></p>
<% end %>

test.html.erb:

<script type="text/javascript">
var postUrl = "<%= json_test_main_path %>";
var postJson = JSON.parse('{ "scores" : { "player1": 5, "player2": 6 } }');

 $.get(postUrl, postJson, function(data, status, xhr) {
    alert("Data: " + data + "\nStatus: " + status);
}, "html");

</script>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您的目标是将用户重定向到另一个页面,那么执行AJAX请求的重点是什么?

没有意义。

尽管如此,您可以在$ .get中添加成功回调,以重定向浏览器。

  .done(function() {
    window.location.href = "http://stackoverflow.com";
  })