2011-09-20 36 views
2

我一直在非常艰难的一天有以下问题更好的一部分:铁轨发出错误的内容类型在Ajax响应

  • 我有一个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。我想,这就是为什么它不工作(作为一个新生成的应用程序,使用相同的jQuery的轨道宝石将其与text/javascript头响应

服务器它的响应与JS:

Processing by SignupsController#create as JS 

但由于某种原因拒绝发送正确的头。我迷失在哪里接下来看看。

任何帮助或方向在何处下一看,将不胜感激! 欧文

回答

4

好的找到了解决方案,

所以应用程序控制器中的after_filter重写了内容类型。并且它们被内部处理。所以它覆盖了我的声明。

+0

谢谢!这让我走上了正确的道路。应用程序中的后置过滤器将头文件['Content-Type']明确设置为text/html。因此,我无法通过常规方式设置respond_to块中的content_type。我可以通过在响应块中调用标头['Content-Type'] ='text/javascript'来覆盖它。 – Swards

相关问题