Javascript IE8上的获取访问被拒绝错误

Javascript IE8上的获取访问被拒绝错误,javascript,file-upload,internet-explorer-8,cross-domain,access-denied,Javascript,File Upload,Internet Explorer 8,Cross Domain,Access Denied,我有一个HTML表单(upload.htm),里面有一个HTML文件上传控件 <form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post"> <input id="uploader" name="uploadctrl" type="file"/> </form> 我从iframe中调用页面内部(upl

我有一个HTML表单(upload.htm),里面有一个HTML文件上传控件

<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
    <input id="uploader" name="uploadctrl" type="file"/>
</form>
我从
iframe
中调用页面内部(uploadpage.htm):

<iframe id="docframe" src="upload.htm" style="display:none"></iframe>
我收到一个错误,说访问被拒绝,我的调试器在我显示的第一个JavaScript函数处停止。这两个文件在web项目中位于同一位置。他们也有相同的域名。那我为什么会犯这个错误呢

当然,早些时候,我可以发布页面:当我没有为HTML上传控件设置
name
属性时。但是在HTML标记中设置了name属性之后,出现了一个奇怪的错误。为什么我第一次没有得到这个


查看了一下@this post-->,但没有任何帮助。

在两个HTML文件中—一个在框架中,另一个包含框架—尝试添加
document.domain='example.com'
,其中'example.com'是您的域名。

IE不允许操纵type=“file”由于安全原因,来自javascript的输入元素。设置文件名或调用单击事件以显示浏览器对话框将导致表单提交上出现“访问被拒绝”错误-Internet Explorer非常擅长记住调用了哪些方法


类似问题:

传统上,出于安全考虑,JavaScript对HTML
input type=“file”
的访问受到严重限制。好了,在文件上传器元素上不能使用JS执行以下操作:

  • 您无法读取元素的“值”,因为它包含文件名
  • 你不能通过JS启动文件选择菜单
  • 您不能通过JS启动文件上传器控件的提交
  • 所有这些都是为了防止恶意攻击,比如通过JS在后台窃取您的文件。我已经有一段时间没有使用
    input type=“file”
    元素了,但我最好的猜测是,在其他浏览器中也会遇到类似的问题(如果不是全部的话)

    你最好的选择是基于Flash的解决方案或者一些新的HTML5控件

    此外,以下是关于该主题的官方参考:


    一直勾选上页底部的“社区内容”。

    必须重申这个答案。我疯狂地寻找我的表单上传的问题,事实上我在IE中使用了自定义文件输入,这导致了访问被拒绝的问题。伟大的洞察力,我错过了什么?这把小提琴似乎证明了这个答案是错误的;使用Ender/Bean而不是jQuery,我让IE9打开文件选择器并通过JS将表单提交到生成的iframe,它似乎可以工作:啊哈,我知道了-我的文件输入没有name属性。只要我添加一个,我就会得到拒绝访问错误:这里的最佳答案:Josh Crozier的答案
    <iframe id="docframe" src="upload.htm" style="display:none"></iframe>
    
    var i = document.getElementById('docframe');
    i.contentWindow.performUpload();