HTML元素Iframe嵌入跨域界面(React代码)

背景:

使用Iframe嵌入别的域的界面,涉及安全、跨域等问题

代码:

import React, { Component } from 'react';
class A extends Component {
    // xxx;
    
  render() {
    return (
            <div className="xxx">
                <iframe
                    style={{width:'100%',border:'0px',height:xxx}}
                    sandbox="allow-scripts allow-forms allow-same-origin"
                    scrolling="auto"
                    src={tempReportHerf}
                />
            </div>
            );
  }
}

问题及解决:

1、配置sandbox 配置允许运行script & form才能运行iframe中嵌入的界面。

2、对于配置了安全认证的页面(Https)等,首先需要配置证书,可登陆要嵌入的页面获取证书后安装到浏览器。

3、对于apache,修改对于Iframe的配置项在httpd.conf文件中,内容为“Header always append X-Frame-Options SAMEORIGIN”。配置不生效,去除该行配置

4、spring-security.xml文件,其iframe配置项与apache中的配置项重复。但是,因为该配置项是spring安全框架默认配置项,无法直接删除,所以需要把配置项修改为关闭。需要把配置行修改为如<headers><frame-options disabled="true"/></headers>,禁用掉frame-options

5、如iframe嵌入的页面没有配置正式证书,单独访问时会出现如下提示:

解决

(1) iframe元素上方给出"如首次进入或者页面无法正常加载,请点击"的超链接,目标和iframe指向的src一致,用户主动触发一次

(2)申请正式证书

 

 

参考博客:

https://blog.csdn.net/lp18036194881/article/details/79541100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值