所以我把一个插件放在一起,它允许我用一个在线服务连接多个客户端站点。
我可以让服务供应商代码段加载,但一旦你与它交互,事情就会变得棘手,它拒绝加载(我猜)iframe。。。它的文档记录很差。
Refused to load https://www.service-domain.com/ because it does not appear in the frame-ancestors directive of the Content Security Policy.
这是我收到的控制台日志错误。
因此,我跳回插件并添加了以下内容:
function bbti_send_headers() {
header( "Content-Security-Policy: frame-ancestors https://www.service-domain.com/; frame-src https://www.service-domain.com/;" );
}
add_action( \'send_headers\', \'bbti_send_headers\' );
现在,当我重新加载页面时,仍然会出现相同的错误
Refused to load https://www.service-domain.com/... etc...
但是,如果我查看网络面板并检查页面标题,我会得到以下结果:
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Security-Policy: frame-ancestors https://www.service-domain.com/; frame-src https://www.service-domain.com/;
因此,标题已经存在,但仍然从脚本中得到相同的错误。
有人知道我错过了什么吗?
最合适的回答,由SO网友:Tony Djukic 整理而成
经过大量挖掘,错误消息的措辞似乎有点误导。
Refused to load https://www.service-domain.com/ because it does not appear in the frame-ancestors directive of the Content Security Policy.
上面没有澄清的是,这不是我正在处理的服务器/站点
Refused
从供应商的域中加载,但这是供应商的财产
Refused
将自己加载到我正在处理的域中。
上面的标题片段在任何人需要时都可以使用,但如果您看到特定的错误消息,请注意,受限制的是其他域,而不是您的域。
另一方面,问题源于这样一个事实,即工作正在开发/暂存域上进行,但当与供应商建立帐户/配置文件时,使用了当前的实时/生产域,因此我呼叫的域未列为正在验证的域,因此被阻止。
希望这对遇到类似问题的人有所帮助。