繁体   English   中英

Rails 4应用程序中的$ .ajax请求不会呈现视图

[英]$.ajax request in Rails 4 app doesn't render view

我是Rails的新手,我正尝试从javascxript将模型数据提交到控制器方法,并呈现结果列表...

function submitResults() {
  resultURL = "/result";
  resultData = JSON.stringify(results);
  $.ajax({
    type: "POST",
    url: resultURL,
    data: { results: resultData},
    contentType: "application/html",
    dataType: "html"
  });  

服务器显示执行了控制器方法并呈现了视图。

Started POST "/result" for 127.0.0.1 at 2014-11-14 17:36:32 -0600
Processing by ResultsController#create as HTML
  Result Load (0.7ms)  SELECT "results".* FROM "results"
  Rendered results/index.html.erb within layouts/application (366.0ms)
Completed 200 OK in 4722ms (Views: 408.3ms | ActiveRecord: 1.3ms)

但浏览器不会渲染视图。 这是我的create方法,由$ .ajax调用触发...

def create
  result = Result.new(result_params)
  result.save
  @results = Result.all
  respond_to do |format|
    format.html { render :index }
  end
end

浏览器为什么不加载索引视图?

您的ajax调用对响应没有任何作用,请为其定义回调函数。 例如:

$.ajax({
  type: "POST",
  url: resultURL,
  data: { results: resultData},
  contentType: "application/html",
  dataType: "html"
}).done(function(response) {
  //attach the response somewhere in the DOM.
});

检查AJAX文档中的所有回调。

顺便说一句,您通常不希望通过ajax调用来加载整个html页面。 似乎您正在渲染的页面包含所有内容(似乎正在使用默认布局)。 在这种情况下,进行AJAX调用将没有任何好处(并使事情变得更困难),并且您可能希望通过html表单进行发布。

暂无
暂无

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

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