javascript - 如何在 Rails 3 中使用 ajax 请求请求 html 页面?

标签 javascript jquery ruby-on-rails ajax ruby-on-rails-3

我正在尝试让 Rails 在特定条件下通过 ajax 请求呈现 .html.erb 模板。默认情况下,当我发送 ajax 请求时,我会一直返回 .js.erb 文件。

我不会解释我为什么要这样做,但我想知道是否有一种方法可以指定我何时通过 ajax 发送请求,我希望返回 html 内容而不是 js,或者,如果有一种方法可以在 Rails 3.1 中重构以下内容:

respond_to do |format|
  format.html
  format.js do
    if params[:page].nil?
      render "home.html.erb"
    else
      render "home.js.erb"
    end
  end
end

谢谢!

最佳答案

假设你使用的是jquery,你可以设置dataType选项,即

$.ajax('some/page', {dataType: 'html'})

或者

$.get('some/page', function(){ //callback}, 'html')

将格式添加到 URL(即请求“/some/page.html”)也应该有效(无论您如何提出请求)

关于javascript - 如何在 Rails 3 中使用 ajax 请求请求 html 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10255423/

相关文章:

javascript - 事件监听器完成后运行函数

mysql - 删除ruby用户记录

ruby-on-rails - 应该使用添加或删除迁移,还是对现有迁移文件进行更改?

javascript - 首次调用返回类型函数时未调用两个 javascript 函数

javascript - 谷歌地图集群下拉菜单?

javascript - JavaScript websocket可以从服务器获取返回值吗?

ruby-on-rails - Rails-自定义删除前确认对话框的 View

javascript - 单击容器内部时下拉菜单关闭

jquery - 创建自定义搜索栏时单击外部 div 更改内部 div 的宽度

javascript - 使用 jquery 在大型数据表中显示/隐藏列/行排序/固定标题的建议