2011-06-12 131 views
2

我的應用程序需要AJAX請求,並通過URL向我的網站上的下載位置迴應他們請求的文件。然後,響應成功的Javascript AJAX方法會動態地在頁面上創建一個iframe,並將src設置爲下載位置,以允許顯示文件對話框,以便用戶可以下載該文件。問題是,IE瀏覽器顯示以下安全警告:IE iframe下載導致安全警告

http://avnhelp.com/default_files/image004.jpg

的主要原因,這是一個問題,是因爲,當他們點擊接受,它刷新頁面和文件下載丟失(我假設這是因爲它在動態創建的iframe中)。

我需要一種方法要麼:

  • 禁用該安全提示對話框

  • 提示,當他們訪問的網站 接受任何未來的文件 下載用戶。

  • 修復刷新時(從 接受)文件下載丟失的事實。

這裏是我的iframe代碼:

function create_iframe(url) { 
    frame = document.createElement('IFRAME'); 
    frame.setAttribute('src', url); 
    frame.style.display = 'none'; 
    document.body.appendChild(frame); 
} 

如果有人可以幫助我,那簡直太好了!謝謝。

+0

請勿使用iframe進行文件下載。如果您需要從外部網站構建服務器端代理,它將使用某種「HttpRequest」,然後使用jQuery AJAX訪問本地代理。 – 2011-06-12 13:59:12

+0

什麼是您的服務器端語言? PHP,ASP.NET還是其他? – 2011-06-12 14:15:43

+0

@Shadow Wizard:HttpRequest觸發文件下載?你顯然誤解了這個問題。 – 2011-06-14 01:00:13

回答

11

您不能禁用安全警告。只要文件附件顯示在與用戶啓動的事件(「單擊」或表單提交)生成的HTTP請求無關的HTTP響應中,瀏覽器就會這樣工作。您會收到警告,因爲您正在從ajax響應事件處理程序發出HTTP請求,而瀏覽器根本就不喜歡這樣。

使設置工作的唯一方法是確保您從「click」處理程序或表單的「submit」處理程序啓動HTTP請求(或通過將實際表單提交結果到文件中響應)。

+0

嗨尖尖,謝謝你的迴應。所以基本上沒有任何方法可以做到我沒有額外的點擊涉及之後的事情?這是我的主要目標,消除點擊鏈接或按鈕或表單或其他東西,儘可能減少互動。 – b0xxed1n 2011-06-12 14:24:43

+0

是的,這是一種痛苦,但瀏覽器會阻止惡意惡意網站向用戶發送惡意下載。 – Pointy 2011-06-12 14:29:10

+4

所以downvote是因爲....究竟是什麼? – Pointy 2012-03-13 19:22:02