rails在ajax响应中发送错误的内容类型

时间:2011-09-20 09:10:39

标签: ruby-on-rails ajax jquery ruby-on-rails-3.1 ujs

在一天中的大部分时间里,我一直在努力解决以下问题:

  • 我有一个rails 3.1 app - 运行正常
  • 我正在尝试添加一些ajax

但是,无论我尝试什么,Rails都坚持在响应头中发送错误的内容类型。

#the form    
= form_for @signup, :url => '/signup', :remote => true do |f|
    = f.text_field :email, :class => 'email', :size => 26
    = f.submit 'Notify me'

#In the controller
def create
  respond_to do |format|
    format.js { render :content_type => 'text/javascript', :layout => false}
  end
end

#the JS file: create.js.erb
alert('HI!');

这不起作用,而我认为应该。使用Firebug检查服务器响应,它告诉我响应头的内容类型为text/html。我认为这就是它无法正常工作的原因(就像新生成的应用程序一样,使用相同的jquery-rails gem它会使用text/javascript标题进行响应。

服务器它正在用JS回复:

Processing by SignupsController#create as JS

但是以某种方式拒绝发送正确的标题。我迷失在下一步的地方。

任何关于下一步的帮助或方向都将非常感谢! 欧文

1 个答案:

答案 0 :(得分:4)

好的找到了解决方案,

因此应用程序控制器中的after_filter覆盖了内容类型。它们是由内到外处理的。所以它覆盖了我的声明。