2011-05-26 100 views
7

在發佈使用document.forms[0].submit()在IE 9,我們得到一個錯誤,指出一個文件上傳框形式:SCRIPT5: Access is deniedSCRIPT5:訪問被拒絕在IE9上的文件上傳

如果我點擊了幾次,它工作正常。

作爲解決方法我已經發現了錯誤,並嘗試了幾次,似乎工作得很好。

對此有任何解釋嗎?該代碼已在所有其他流行瀏覽器上運行多年。

如果瀏覽器設置爲IE9兼容模式,該代碼在IE9中也可以正常工作,但這不是我們通常控制的功能。

我已經看到引用XMLHTTP是一個問題,我們確實執行了XMLHTTP調用,但它發生在單擊提交按鈕之前。

回答

11

事實證明,安全問題是由於我們在彈出窗口中運行文件提交代碼的事實。彈出窗口打開window.open有一個空字符串作爲請求的頁面。然後,我們發佈了一個窗體。

問題是,彈出窗口的URL默認爲about:未指定時爲空白。顯然關於:空白被認爲是不安全的,所以當試圖將文件發回到發起域時,SCRIPT5:訪問被拒絕錯誤出現。

解決方案是使用一個小型存根類型的html頁面打開然後執行該帖子。一旦選擇了一個文件,FILE文件就不會看到該錯誤,並且文件將按照需要進行修改。

+1

你是什麼意思的「小型存根類型」? – djKianoosh 2013-04-21 15:05:24

+1

@djKianoosh只是一個小的html文件,瀏覽器可以在執行POST之前調用它。我們使用的只是文本:Loading ..... – 2013-04-22 11:45:11

+0

在我的情況下頁面沒有在彈出窗口中打開它既沒有空網址 – 2014-04-02 12:46:25