1

我想通过iframe传输发送包含文件和一些文本字段的发布请求。IE9 SCRIPT5访问被拒绝

(jQuery的文件uload + jquery.iframe运输)

http: //192.168.1.36:3001/index.html主要页面的URL。请求网址是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()"

此外我试图添加到窗体一个特殊的提交按钮,并试图触发('点击')。不起作用。

有没有可能?

感谢

+0

你试图让父页面的一些JS代码提交表单中的iframe子页面? – 2014-09-25 19:56:23

+0

@MarcB我试图通过iframe传输从主页面发送ajax请求。你是否阅读并理解这个问题? – 2014-09-25 20:00:19

+0

**你的问题中的NOWHERE **你曾经提到过“ajax”,并且没有“iframe传输”这样的东西。 – 2014-09-25 20:01:19

回答

2

@约翰,

当你写道:

我也尝试添加到窗体一个特殊的提交按钮,并试图触发( '点击')。不起作用。

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

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

解决方案: 如果你的风格的文件输入元素为visibility: hidden;,而不是display: none,并且使用一个标签发起的行动,它会奏效。 您可以根据需要设计标签样式,它可以完成您想要的所有功能(我无法使用它来与键盘焦点& 输入键)。

例如以下为我工作:

<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; 
}