降域——针对iframe实现跨域的方式

关于iframe的同源策略问题

在当前页面下的iframe的域名若与当前页面的域名不同源,则当前页面的js代码对iframe无法进行任何操作。
这是为了保护用户在iframe中登录其他网站或与之类似的相关操作会泄露隐私数据。


什么是降域

如http://a.justfun.me 和 http://b.justfun.me,后面的justfun.me相同,那么就可以使用document.domain将二者的域名设置为justfun.me,来实现同源

注意事项

  • 顶级域名无法降域
  • 不仅当前页面要使用document.domain,iframe的源页面也要使用document.domain

与JSONP、CORS相比

  • 降域主要针对于当前页面下的iframe

实现代码

注意修改host文件使得不同域名映射至同一个IP地址,即可测试JSONP跨域


主页面代码




    
    使用降域
    


降域

iframe页面代码




    
    使用降域
    



代码GitHub地址

参考资料:顶级域名

前端

你可能感兴趣的:(降域——针对iframe实现跨域的方式)