iframe内嵌链接常见问题

3 篇文章 0 订阅
3 篇文章 1 订阅

问题1: Refused to display 'http://localhost:8080/xxx'  in a frame because it set 'X-Frame-Options' to 'sameorigin'

出现原因:X-Frame-Options 响应头表示浏览器是否允许一个页面在 <frame>、<iframe>、<embed> 、<object> 标签中显示。站点维护人员可以通过设置该请求头确保自己的网站没有被嵌入到别人的网站里面,从而避免 点击劫持攻击

X-Frame-Options 有三个可能的值:

deny:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

sameorigin:表示该页面可以在相同域名页面的 frame 中展示。

allow-from uri:表示该页面可以在指定来源的 frame 中展示。

问题2:This request has been blocked; the content must be served over HTTPS.

出现原因:HTTPS 是 HTTP over Secure Socket Layer,以安全为目标的 HTTP 通道,所以在 HTTPS 承载的页面上不允许出现 http 请求,因此需要将加载的http请求替换成https请求,才能正常显示。

解决方法:

1.如果iframe加载的内容支持https请求,前端可以在页面的<head>中加入以下代码自动将http升级成https, 也可以通过后端去配置。

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

2.如果iframe加载的内容不支持https请求,可以让后端通过Nginx拦截转发。

        比如: 在https://www.xxx.com下通过iframe内嵌一个http://www.abc.com/aaa,前端需要将http://www.abc.com替换成https://www.xxx.com,然后后端要开一个专门的ng服务对该请求进行拦截,再将https://www.xxx.com重新替换成http://www.abc.com。

问题3:Uncaught DOMException: Blocked a frame with origin "xxx" from accessing a cross-origin frame。

出现原因: 跨域访问。

解决方法:百度一下,你就知道。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值