响应格式与rails中的请求不同

Response format differs from request in rails

本文关键字:请求 格式 rails 响应      更新时间:2023-09-26

我有模板:blabla.haml和2个布局:

  1. layouts/application.js.erb
  2. layouts/application.html.haml

在控制器中,我有render 'blabla.haml'在日志中:request.xhr? # true

所以,如果我用ajax发送请求,我仍然会得到html答案:text/html和layouts/application.html.haml作为布局

我应该怎么做才能得到正确的js答案?

在您的控制器中,您应该有这样的东西:

class UsersController < ApplicationController::Base
  def index
   respond_to do |format|
    format.js { }
    format.html {}
   end
  end
 end

你也可以用responsd_with这样的东西来实现它:

class UsersController < ApplicationController::Base
  respond_to :html, :xml, :json
  def index
    respond_with(@users = User.all)
  end
  def create
   @user = User.create(params[:user])
   respond_with(@user, :location => users_url)
  end
end

甚至在ajax查询中,例如,使用jquery($.ajax、$.get、$.post、$.getScript等),您可以强制使用内容类型,比如:

$.getScript('ajax/test.js', function(data, textStatus){
  console.log(data); //data returned
  console.log(textStatus); //success
  console.log('Load was performed.');

});