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

How to request an html page using an ajax request in Rails 3?

本文关键字:请求 ajax html 页面 Rails      更新时间:2023-09-26

我正在尝试在某些情况下通过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")也应该有效(无论您如何发出请求)