2

在一天中的大部分时间里,我一直在为以下问题苦苦挣扎:

  • 我有一个 rails 3.1 应用程序 - 运行良好
  • 我正在尝试向它添加一些 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. 我认为这就是它不起作用的原因(就像在新生成的应用程序上一样,使用它响应text/javascript标题的相同 jquery-rails gem。

服务器说它用 JS 响应:

Processing by SignupsController#create as JS

但是以某种方式拒绝发送正确的标头。我不知道下一步该往哪里看。

任何关于下一步看哪里的帮助或指导将不胜感激!欧文

4

1 回答 1

4

好的,找到了解决方案,

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

于 2011-09-20T09:55:15.263 回答