我想通过iframe传输发送包含文件和一些文本字段的发布请求。
(jquery-file-uload + jquery.iframe-transport)
主页http: //192.168.1.36:3001/index.html
的网址。请求网址为http: //192.168.1.36:3001/api/upload
。
其他信息:
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 :(得分: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;
}