File upload 脚本5:文件上载时IE9中的访问被拒绝

File upload 脚本5:文件上载时IE9中的访问被拒绝,file-upload,internet-explorer-9,File Upload,Internet Explorer 9,使用ie 9上的document.forms[0].submit()发布带有文件上载框的表单时,我们会收到一条错误消息:SCRIPT5:访问被拒绝 如果我再点击几次,效果很好 作为一种变通方法,我发现了错误,并尝试了几次,似乎效果很好 有什么解释吗?该代码在所有其他流行浏览器上运行了多年 如果浏览器设置为IE9兼容模式,那么代码在IE9中也可以正常工作,但这不是我们可以控制的 我看到对XMLHTTP的引用是一个问题,我们确实执行了XMLHTTP调用,但它发生在单击提交按钮之前。结果表明,安全问题

使用ie 9上的
document.forms[0].submit()
发布带有文件上载框的表单时,我们会收到一条错误消息:
SCRIPT5:访问被拒绝

如果我再点击几次,效果很好

作为一种变通方法,我发现了错误,并尝试了几次,似乎效果很好

有什么解释吗?该代码在所有其他流行浏览器上运行了多年

如果浏览器设置为IE9兼容模式,那么代码在IE9中也可以正常工作,但这不是我们可以控制的


我看到对
XMLHTTP
的引用是一个问题,我们确实执行了
XMLHTTP
调用,但它发生在单击提交按钮之前。

结果表明,安全问题是由于我们在弹出窗口中运行文件提交代码。弹出窗口是用window.open打开的,它有一个空字符串作为请求的页面。然后我们在那个窗口贴了一张表格

问题是弹出窗口的URL在未指定时默认为about:blank。显然about:blank被认为是不安全的,因此当尝试将文件发回原始域时,会出现SCRIPT5:Access is denied错误


解决方案是使用一个小存根类型的html页面打开,然后执行post。一旦选择了一个文件,文件post就看不到错误,并且该文件会根据需要进行弥补。

你所说的“小存根类型”是什么意思?@djKianoosh只是一个小html文件,浏览器可以在执行post之前首先调用它。我们使用的那个只不过是文本:Loading…..在我的案例中,页面在弹出窗口中没有打开,也没有空url@sandeepkale你是从通过HTTPS传递的页面发出HTTP请求吗?@Tom Hubbard:不是,我使用的是简单的HTTP请求。我做了一个变通办法。我猜这是因为我在点击“假文件”字段时触发了实际文件的点击。我展示了原始文件上传,并制作了CSS来重叠假文件。以便委派单击事件。在那之后它起了作用。