因为IE不支持异步文件上传,我用一个解决涉及提交表单的iframe。 我绑定iframe的onLoad事件,当事件被触发阅读其内容。 这种运作良好,当服务器返回200多家的状态码,在这种情况下IE8 / IE9抛出一个除“SCRIPT5:访问被拒绝”的错误。 看来微软已经决定,任何人都不应被允许,除非请求返回200 OK阅读的iframe的内容。
谷歌搜索却一无所获,所以我在这里寻求帮助。 其他人能重现这一奇怪的行为? 反正是有解决这个问题?
该IFRAME不违反任何跨站点的安全策略。 这一切都在同一个域。
我想我已经工作这么一出,同时试图重现上小提琴手的问题。 在IE中关闭“显示友好HTTP错误信息”似乎解决它。 我不能重现上的提琴手的原因是,他们的404页有超过512个字节,因此它会显示nginx的错误不管。
基本上,整个问题是,当一个页面(在某些情况下或256)小于512字节,IE浏览器似乎代之以具有程序阻止访问该页面的结果是整个页面。 显然,微软的疏忽这似乎仍然存在于IE10。
这很容易繁殖。 只要将一个文件下面的(如test.html的)比返回一个服务器下一个404响应代码下的512个字节,并确保您的IE设置为显示友好的错误消息(也确保“test1.file”实际上并没有存在)。 打正着IE的页面与开发者控制台打开,你会看到一个“拒绝访问”错误。 你怎么刷新页面改变的结果。 甲CTRL + F5似乎并不表现出的问题,而是一个CTRL + R或F5一样。
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<script type="text/javascript">
iframe = document.createElement('iframe')
iframe.src = '/test1.file'
document.body.appendChild(iframe )
iframe.contentDocument
</script>
</body>
</html>
现在,只要我能找到我在哪里可以提交IE10错误报告,所以我们可以让我们的生活处理的只是这个可怕的浏览器更好一点。