1
我使用的jquery-rails gem與javascript_include_tag :defaults
。因此,頁面已經報頭:Rails Ajax:.js.erb呈現爲文本,未執行
<script src="/javascripts/jquery.js?1312437063" type="text/javascript"></script>
<script src="/javascripts/jquery_ujs.js?1312437070" type="text/javascript"></script>
<script src="/javascripts/application.js?1311268601" type="text/javascript"></script>
<meta name="csrf-param" content="authenticity_token"/>
<meta name="csrf-token" content="KdgrBxF726xfPP3qbNOHd/0TG9c7lVCoZDXPnadFOzI="/>
Ajax請求來自與線的視圖:
<%= link_to 'Run', :controller => "config_panel", :action => "full_run", :remote => true, :format => :js %>
它呈現爲:
def full_run
respond_to do |format|
format.js { render :text => "alert();"}
format.xml
end
end
:
<a href="/config_panel/full_run.js?remote=true">Run</a>
在控制器定義的響應
點擊鏈接時,服務器日誌:
Started GET "/config_panel/full_run.js?remote=true"
Processing by ConfigPanelController#full_run as JS
Parameters: {"remote"=>"true"}
Rendered text template (0.0ms)
Completed 200 OK in 1ms (Views: 0.6ms | ActiveRecord: 0.0ms)
和瀏覽器顯示的純文本:
alert();
的HTML頭有status: 200
和content-type: text/javascript
。 Chrome瀏覽器JavaScript控制檯顯示沒有錯誤。
我嘗試以下解決方法:
- 包括rails.js ---未能
link_to
到<div onclick="$.ajax(...)">
- 變化---制定
我非常受的行爲混淆:remote =>
true在link_to
。