Rails3 中的 Ajax 请求,无法正常工作

Posted

技术标签:

【中文标题】Rails3 中的 Ajax 请求,无法正常工作【英文标题】:Ajax request in Rails3, can't get it to work 【发布时间】:2012-05-10 01:06:26 【问题描述】:

我尝试使用 AJAX 重构我的项目。 我有一个链接...

= link_to("Please work", "show_recent_chart", :remote => true)

... xxx 控制器操作 ...

def show_recent_chart
  ...
  respond_to do |format|
    format.js
  end
end

... 和一个 show_recent_chart.js.erb 模板

alert("Done!");

点击链接后我的日志文件显示:

Started GET "/show_recent_chart" for 10.0.2.2 at 2012-04-30 05:56:43 -0400
Processing by XXXController#show_recent_chart as JS
MONGODB (0ms) 
  Rendered xxx/show_recent_chart.js.erb within layouts/application (0.4ms)
  Rendered shared/_header.slim (18.0ms)
  Rendered shared/_footer.slim (0.1ms)
Completed 200 OK in 8360ms (Views: 1276.0ms)

所以看起来一切正常。但是 js.erb 模板中的 javascript 代码永远不会被执行。 Firebug 只显示请求,没有其他内容。

我怎样才能让它工作?谢谢!

【问题讨论】:

【参考方案1】:

我终于想通了。 使用 firebug 我看到对我的 ajax 请求的响应是完整的 html 文档。 我不得不使用

format.js  render :layout => false 

完成这项工作。

【讨论】:

以上是关于Rails3 中的 Ajax 请求,无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

jQuery AJAX 获取请求无法正常工作,返回值无法在控制台显示

Rails 3 AJAX请求真实性令牌被忽略

在 Laravel 中调用 ajax 后数据表无法正常工作

内联 Javascript 在 Rails 3.1 上重新渲染部分 ruby​​ 时无法正常工作

AJAX 调用的 Laravel 路由无法正常工作

rails3 rails.js 和 jquery 捕获 ajax 请求的成功和失败