2011-05-26 103 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