Refused to display because an ancestor violates the following Content Security问题简单解决

 http的iframe中访问https页面简单解决办法

在公司云平台(微信企业号及公众号管理)上需要显示其他公众号微信文章,正常来说直接在富文本编辑器中设置超连接是没问题的,但是微信文章是https开头,而服务器http开头,导致页面报错:

Refused to display 'https://mp.weixin.qq.com/xxx' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'

 解决方案:在页面中设置meta ,url可动态设置

 <meta http-equiv="refresh" content="0;url=${contentColumn.URL}">

iframe设置如下:

<iframe src="${contentColumn.URL}" frameborder="0" scrolling="no" style="width: 100%;height: 100%"></iframe>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
引用[1]和引用[2]的报错信息都是由于Content Security Policy(CSP)策略导致的。CSP是一种安全机制,用于限制网页的资源加载和脚本执行,以减少恶意攻击的风险。当网页的某个元素(如iframe)试图在一个祖先元素的上下文加载资源时,如果祖先元素的CSP策略不允许该操作,就会出现这个报错。 报错信息的"frame-ancestors 'none'"和"frame-ancestors 'self'"是CSP策略的一部分,用于指定允许加载iframe的祖先元素。"frame-ancestors 'none'"表示不允许任何祖先元素加载iframe,而"frame-ancestors 'self'"表示只允许同源的祖先元素加载iframe。 要解决这个问题,可以尝试以下几种方法: 1. 检查网页的CSP策略:查看网页的响应头或元数据是否设置了CSP策略,并确认是否包含了"frame-ancestors 'none'"或"frame-ancestors 'self'"。如果是,可以尝试修改策略,允许加载所需的iframe。 2. 检查祖先元素的CSP策略:如果报错信息指定了具体的祖先元素,可以检查该元素所在的页面或应用的CSP策略,并确认是否设置了"frame-ancestors 'none'"。如果是,可以尝试修改策略,允许加载iframe。 3. 使用合适的CSP策略:根据实际需求和安全考虑,可以使用适当的CSP策略来限制资源加载和脚本执行,同时确保不影响所需的iframe加载。 请注意,修改CSP策略可能需要对网页或应用的代码进行更改,具体操作取决于使用的技术栈和框架。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值