【发布时间】:2015-05-30 21:28:09
【问题描述】:
我正在使用 angular-upload 来处理应用程序中的文件上传,通过 HTTPS 提供服务。 Angular-upload 设置为“不支持 FormData 时回退到 iframe 上传”,但在 IE9 中结合使用 iframe 通过 HTTPS 上传会导致控制台中出现以下错误:
SEC7111: HTTPS security is compromised by res://ieframe.dll/forbidframing.htm
SEC7111: HTTPS security is compromised by res://ieframe.dll/ErrorPageTemplate.css
SEC7111: HTTPS security is compromised by res://ieframe.dll/errorPageStrings.js
SEC7111: HTTPS security is compromised by res://ieframe.dll/httpErrorPagesScripts.js
SEC7111: HTTPS security is compromised by res://ieframe.dll/red_x.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/background_gradient.jpg
我已尝试将 add name="X-Frame-Options" value="SAMEORIGIN" 添加到 web.config 中的自定义标头,以及删除 add name= "Strict-Transport-Security" value="max-age=31536000",但这些方法都没有改变结果。
除了拒绝支持 IE9(在这种情况下不是一个选项)之外,还有其他想法如何让 Angular-upload 与 IE9 中的 HTTPS/iframe 很好地配合吗?
更新我能够通过使用 [AllowAnonymous] 标记 web api 方法来部分解决问题。上传的文件现在被接受了,但是出现了一个相关的问题:
1) 我可以在“网络”监视器上看到服务器按预期返回了响应
2) 但是,监视器将请求显示为永久“待处理”状态,因此响应数据永远不会返回到 Angular 控制器,因此永远不会更新 UI
3) 上面显示的相同错误列表继续显示在控制台中
【问题讨论】:
-
Fiddler 确实表明 X-FRAME-OPTIONS "DENY" 标头没有被删除。感谢那!请求正确完成,但现在的问题是 IE9 将序列化数据响应视为要下载的文件,而不是将其呈现给 UI。我必须进行另一个标题更正。
-
正确。必须在 web api 配置中进行一些更改以发回不支持 json 的 text/html。真是一团糟。如果您留下您最初的评论作为答案,我会接受它,因为 x 帧标题是我的主要问题,而 Fiddler 帮助我发现了它。
标签: angularjs iframe internet-explorer-9