我有一個簡單的表格提交的圖像,像這樣:的Rails 3.1與最新的jQuery的UJS IE9要保存響應,.js文件
<%= form_tag avatar_item_path(@tutorial, :format => :js), :method => :post, :remote => true do %>
<%= file_field_tag :item_avatar, :name => "item_image[image]" %>
<% end %>
(蜻蜓處理圖像,如果這是莫名其妙相關)
我的控制器操作被稱爲update_avatar,它沒有渲染或respond_to邏輯(它只是調用查找和保存方法),所以默認情況下在js請求上呈現update_avatar.js.erb。
update_avatar.js.erb包含js函數和$(function() { // some code here })
在FF,Chrome和Safari瀏覽器能正常工作。
問題: IE9要保存響應,avatar.js
使用的開發工具,我可以看到該請求被髮送和正確接收和響應內容類型爲「text/JavaScript的; charset = utf-8「
我試過手動設置內容類型爲應用程序/ JavaScript,並沒有任何效果。
正如其他人在其他地方提出的一樣,如果我將內容類型設置爲text/html,IE9不會提示我保存它,但在這種情況下,瀏覽器中沒有實際評估響應中的js(我把js在腳本標記中)。
從搜索似乎大約一年前,其他人遇到同樣的問題,他們的解決方案是升級jquery,因爲一年過去了,我有一個更新的版本。也許這是迴歸?我使用最新的jquery-rails gem,1.0.19,其中包括jquery 1.7.1,並且還包含最新版本的https://github.com/rails/jquery-ujs(我做了一個差異確認)。