【问题标题】:SCRIPT5: Access is denied in IE9 on file uploadSCRIPT5:文件上传时在 IE9 中访问被拒绝
【发布时间】:2011-09-02 14:09:49
【问题描述】:

在 ie 9 上使用 document.forms[0].submit() 发布带有文件上传框的表单时,我们收到一条错误消息:SCRIPT5: Access is denied

如果我再点击几次,它就可以正常工作。

作为一种解决方法,我发现了错误并再试了几次,似乎效果很好。

对此有什么解释吗?该代码已在所有其他流行的浏览器上运行多年。

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

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

【问题讨论】:

    标签: file-upload internet-explorer-9


    【解决方案1】:

    事实证明,安全问题是由于我们在弹出窗口中运行文件提交代码。弹出窗口是用 window.open 打开的,它有一个空字符串作为请求的页面。然后我们在该窗口中发布了一个表单。

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

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

    【讨论】:

    • “小存根类型”是什么意思?
    • @djKianoosh 只是一个小 html 文件,浏览器在执行 POST 之前可以最初调用它。我们使用的无非就是文字:Loading.....
    • 在我的情况下,页面没有在弹出窗口中打开,也没有空 url
    • @sandeepkale 您是否从通过 HTTPS 传递的页面发出 HTTP 请求?
    • @Tom Hubbard :不,我正在使用简单的 HTTP 请求。我做了一个解决方法。我想这是因为我在点击“假文件”字段时触发了点击实际文件。我展示了原始文件上传并让 CSS 与假文件重叠。以便委托点击事件。它在它之后起作用了。
    猜你喜欢
    • 2014-11-20
    • 2011-08-13
    • 2012-08-27
    • 2012-06-14
    • 2012-10-28
    • 2013-08-06
    • 1970-01-01
    相关资源
    最近更新 更多