You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Angular 17内置SSR应用中iframe因CORP配置问题无法使用的求助

Angular 17内置SSR应用中iframe因CORP配置问题无法使用的求助

大家好,我最近碰到了一个Angular 17 SSR应用的问题,想在这里跟大家请教或者分享下排查过程:

我用Angular 17的内置SSR功能搭建了一个应用,结果发现里面的iframe完全无法正常工作,查了半天后确定是CORP(跨源资源共享策略)没有正确配置导致的。但有意思的是,我用相同的代码创建了一个不带SSR的标准Angular应用,iframe就运行得毫无问题,只有SSR版本的应用会出现CORP相关的配置异常。

先给大家说下我的环境版本:

  • Angular CLI: 17.1.2
  • Node: 20.9.0
  • NPM: 10.2.3
  • 所有相关依赖包的版本都是17.1.2

问题已解决!更新原因和解决办法

我后来发现,问题出在我之前修改了angular.json里的响应头配置,把COEP和COOP这两个跨源安全头直接写在了项目的构建配置里:

"headers": {
    "Cross-Origin-Embedder-Policy": "require-corp",
    "Cross-Origin-Opener-Policy": "same-origin"
}

这种配置方式在SSR应用里是行不通的,会直接阻止CORP的正常生效。正确的做法应该是在服务器端来配置这些跨源安全头,而不是在angular.json里设置。

备注:内容来源于stack exchange,提问作者Kosta

火山引擎 最新活动