iframe和跨域

一、iframe

1、窗口

  • 获取 iframe 的窗口:iframe.contentWindow;
  • js中获取 name:window.name
  • iframe中获取 name:iframe.contentWindow.name

2、获取嵌套的iframe的上次层window

const frame = document.getElementById('iframe-id')
frame.onload =function (){
   console.log(window.parent.name)
}

二、同源策略

同源策略:浏览器安全限制。同源是指:协议+域名+端口完全一致。

 三、跨域问题解决

1、jsonp

        服务器中转跨域,script 标签没有跨域限制,可以使用script 标签加载不同的 src,解决跨域问题。

注意:

  • func必须是全局函数
  • 需要服务端的支持
  • 所有的src 都是 get 请求,无法支持其他请求。            

2、CORS

        跨域资源共享。系统 http头决定浏览器是否接受前端跨域请求之后响应过来的结果:

        如上服务端配置 header 中 Web端的域名,*表示全部通过,也可以指定固定域名。这样,Web 端访问时候就可正常打开指定的域名了,否则会出现跨域问题。

3、proxy

        创建代理虚拟的服务器。在生产环境 nginx 代理,项目 config.js配置。

4、window.name+iframe
    
5、postMessage+iframe:不常用,漏洞大,xss 攻击,兼容性差
6、hash+iframe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值