【问题标题】:Angular upload file error with IE9 ieframe.dll使用 IE9 ieframe.dll 的角度上传文件错误
【发布时间】: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


【解决方案1】:

错误消息显示您的子帧有一个 X-FRAME-OPTIONS 标头,可防止它被加框。你需要解决这个问题;使用 Fiddler 验证标头是否已正确删除。

另请注意,IE 会将application/json 视为文件下载,不会将其呈现为内联。

【讨论】:

    猜你喜欢
    • 2012-07-10
    • 1970-01-01
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    相关资源
    最近更新 更多