2010-08-26 108 views
1

標準方案:帶有可作爲文件下載的報告的ajax重型Web應用程序。哪些文件下載被Internet Explorer的安全欄阻止?

問題:Internet Explorer使用黃色的「安全欄」阻止文件下載。當您點擊欄並允許下載時,整個頁面會刷新並且輸入的數據會丟失。

問題:什麼算作可阻止下載?它是否查看Content-disposition: attachment標題?它拒絕從POST請求下載嗎?是否有任何在所有其中它只是打開沒有黃色欄的下載框?

回答

5

這與文件類型無關,並且與用戶操作前面的內容有關。如果檢測到「用戶發起的動作」是下載的直接原因(例如,用戶直接點擊下載的鏈接或按下按鈕等),則顯示下載對話框而不是信息欄。

#1問題是,使用用戶的點擊瀏覽一些其他網頁(例如感謝您下載「富」),並有頁嘗試啓動的文件下載網站。由於導航導致User-Initiated標誌丟失,因此信息欄會阻止下載。

一些背景資料: XPSP2出臺了文件下載攔截打擊惡意站點,作爲網站加載下載提示的惡意軟件,將垃圾郵件的用戶。罪犯希望用戶可能無意中接受惡意下載。在添加了文件下載阻止程序之後,嘗試執行下載而沒有先前的UIA的頁面將導致顯示信息欄:

儘管合法網站避免此信息欄的瑣碎操作(只需啓動作爲UIA直接結果的單一下載),大多數合法網站都不會這麼做。例如,一個主要目的是下載文件的網站有最大的動力來提供令人愉快的用戶體驗,但是從Download.com下載仍然會在引入阻止程序六年後觸發此信息欄。即使是新的IETestDrive.com網站,當用戶嘗試安裝IE9平臺預覽版時,也會顯示此信息欄,因爲當用戶單擊「安裝預覽」鏈接時,該網站會導航到新頁面(而不是立即觸發下載)。

+0

在我的情況下,我根據表單中選擇的用戶選擇從Javascript生成URL。然後我生成一個表單並提交。所有這些都是在'onclick'處理程序中完成的,但是該欄仍然會觸發。 :( – 2010-08-30 07:28:55

+0

我必須使用一個POST表單,因爲還有一個相當大的字段與一些序列化狀態。大約10KB。它不適合在URL中。 – 2010-08-30 07:55:28

+0

不,等等...在某些情況下,在我提交表單之前仍然存在AJAX請求,因此提交不是用戶發起的操作。該死的... – 2010-08-30 08:16:31

0

微軟的定義是:

Internet Explorer將無法下載攔截文件 如果它看起來 你沒有請求的文件。如果一個網站嘗試 未經您的許可下載文件到您的計算機 或如果您請求一個文件但 不立即啓動,則可能發生此 。

我想我會幫助你一個案例,我的結論和微軟的定義,但我找不到一個堅實的連接。根據響應的「內容類型」檢查請求的「接受」,也許它們相互矛盾。

相關問題