1

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

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

主页面的 url 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()"

我还尝试在表单中添加一个特殊的提交按钮并尝试触发(“点击”)。不工作。

可能吗??

谢谢

4

1 回答 1

2

@约翰,

当你写道:

我还尝试在表单中添加一个特殊的提交按钮并尝试触发(“点击”)。不工作。

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

如果是这样,则 SCRIPT5 错误是因为 IE9 认为尝试阻止不是由用户发起的上传是安全的。

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

例如以下对我有用:

<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;
}
于 2014-11-19T17:55:41.353 回答