2011-09-20 60 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

相關問題