IE9 SCRIPT5访问被拒绝

时间:2014-09-25 19:53:36

标签: internet-explorer iframe internet-explorer-9 jquery-file-upload jquery-iframe-transport

我想通过iframe传输发送包含文件和一些文本字段的发布请求。

(jquery-file-uload + jquery.iframe-transport)

主页http: //192.168.1.36:3001/index.html的网址。请求网址为http: //192.168.1.36:3001/api/upload

我已经读过:     1     2     3     4     5     6     7

等等问题。

其他信息:

browser: ie 9.0.8112.16421

headers of /index.html: 

Cache-Control:no-cache
Cache-Control:public, must-revalidate, proxy-revalidate
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html
Date:Thu, 25 Sep 2014 19:34:41 GMT
Expires:Thu, 25 Sep 2014 19:34:40 GMT
Last-Modified:Thu, 25 Sep 2014 19:17:41 GMT
P3P:CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"
Pragma:public
Server:nginx/1.6.2
Transfer-Encoding:chunked
Vary:Accept-Encoding

domain in iframe is 192.168.1.36, domain in main page is same (192.168.1.36)

但是"SCRIPT5 Access denied" in "form[0].submit()"。我替换了"form.submit()" to "form[0].submit()"

此外,我尝试在表单中添加一个特殊的提交按钮并尝试触发('点击')。不行。

有可能吗?

由于

1 个答案:

答案 0 :(得分:2)

@约翰,

当你写道:

  

此外,我尝试在表单中添加一个特殊的提交按钮并尝试触发('点击')。不行。

这是否意味着您尝试使用<input type="file">元素之外的其他内容触发文件浏览?例如。尝试通过隐藏文件输入元素来设置浏览按钮的样式?

如果是这样,SCRIPT5错误是因为IE9认为它是安全的,试图防止用户未启动上传。

解决方案: 如果您将文件输入元素设置为visibility: hidden;而不是display: none,并使用标签来启动操作,则它会起作用。 您可以根据需要设置标签样式,它几乎可以完成您想要的所有内容(我无法使用键盘焦点&amp; 输入键)。

e.g。以下对我有用:

<label class="my-label-button-style">
    <input type="file" class="my-ie9-hidden-file-input"/>
    Click me
</label>

和CSS:

.my-ie9-hidden-file-input {
    visibility: hidden;
    position: absolute;
    width: 1px;
    height: 1px;
}