我遇到了一个问题,一个供应商的javascript抛出了一个错误,因为document.referrer返回了一个空字符串作为发送到postMessage()
的参数。
离子型:
离子命令行界面:5.4.16(/usr/本地/库/节点模块/离子)
离子框架:@离子/Angular 6.0.14 @Angular -开发套件/构建-Angular :12.2.17
@Angular 开发工具包/原理图:12.2.17 @Angular /倾斜
:12.2.17 @离子/Angular 工具包:4.0.0
电容器:
电容器CLI:3.4.3 @电容器/芯:3.4.3
效用:
cordova -雷斯:0.15.4本机运行(可用更新:第1.6.0节):第1.5.0节
系统:
NodeJS :v14.18.1(/usr/本地/bin/节点)npm:2015年14月6日OS
:macOS Monterey
1条答案
按热度按时间7gs2gvoe1#
正如我在上面的评论中提到的,我们有一个非常相似的问题,除了我们正在运行expo中 Package 的react原生web应用程序。
简短的回答是,确保为您的应用程序设置正确的“推荐策略”。
稍长一点的回答:
我们的第三方小部件在除了我们的开发环境之外的任何地方都可以工作。经过几天的调试,我意识到不知何故,我们的引用策略在我们的开发环境(Azure设置)中被覆盖了。
现代浏览器将引用策略设置为
"strict-origin-when-cross-origin"
,这将document.referrer
设置为您的原始url。在我们的一个环境中,我们将其设置为
"same-origin"
,并且此头部不与跨源目标共享其源,因此,当第三方小部件尝试将postMessage
返回给我们时,我们将一无所获,因为document.referrer
为空。以下是有关Referrer Policy的详细信息