我正在開發一個Rails應用程序的前端。在跨瀏覽器測試中,我立即發現Internet Explorer(顯然是所有現代版本,但至少IE 7和IE 8)沒有正確解釋我想通過AJAX(使用jQuery)作爲JavaScript加載的文件。出現文件下載警告,用戶需要確認是否應該下載文件。不幸的是,這對於應用程序的目的是不可接受的。Internet Explorer阻止文件下載; 「未知文件類型」文件
我創建了幾個測試文件;一個只是從Amazon S3提供的JavaScript文件;另一個實際上是Varnish/Rails提供的資源URL。後者是觸發警告的那個。所以:
LINK:URL that gives a warning in IE
請求頭:
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
響應頭:
Age: 1952 Cache-Control: public, max-age=3598 Connection: keep-alive Content-Encoding: gzip Content-Length: 2060 Content-Type: text/javascript; charset=utf-8 Date: Fri, 13 Nov 2009 22:54:18 GMT Etag: "272d9ec2e59aa92da18758cf42a4d729" Server: nginx/0.7.61 + Phusion Passenger 2.2.5 (mod_rails/mod_rack) Status: 200 OK Via: 1.1 varnish X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.2.5 X-Runtime: 0.11573 X-Varnish: 176673116 176651738
LINK:URL that does not give a warning in IE
請求頭:
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
響應頭:
Age: 14 Connection: keep-alive Content-Encoding: gzip Content-Length: 52 Content-Type: text/javascript Date: Fri, 13 Nov 2009 22:55:03 GMT Etag: "7b7ded6696ee52551289c856d3173db4" Last-Modified: Fri, 13 Nov 2009 22:30:45 GMT Server: AmazonS3 Via: 1.1 varnish X-Amz-Id-2: CR79uoLC67sr0e0uj4CUOCoBQgcIW/jaJc/FNSA3zsK3Lns/gAqx98/T9h/UeJGm X-Amz-Request-Id: BCF2F2D69F5126DD X-Varnish: 1566212056 1566211955
什麼,立刻伸出我是「text/JavaScript的的內容類型; charset = utf-8「爲URL提供警告 - 是否有效?我一直認爲只有」text/javascript「纔有效。
此外,提供警告的URL返回Content-輸入「text/javascript」,但是它是一個沒有擴展名爲.js的Rails URL--可能會有所作爲嗎?
是否還有其他任何內容突出顯示,或者沒有其他人有任何其他想法可能是造成這個問題?非常感謝您的幫助。
謝謝EFraim。我們的一位Rails程序員將URL構造更改爲包含「index.js」,IE現在將文檔類型識別爲「JScript」 - 向前邁進了一步。但是,這並沒有解決問題;使用AJAX加載文件仍然會提示文件提示以確認下載,而不是在後臺加載。還有什麼可能導致這種情況? – Bungle 2009-11-15 12:12:15