js跨域涉及代理页面的解决方案的原理
window.name:iframe目标与宿主都可以访问iframe对应window的name属性(同域时),srouce通过iframe引用target,target接受请求后给出数据放置于target的window.name中,即source的iframe的contentWindow.name中
代理的原理是利用一个iframe对应一个window即contentWindow,一个window对应一个name,window的location的变化不会引起name的变化。需要代理时,只需使iframe的contentWindow.location指向proxy,此时contentWindow.name不会改变。
location.hash:原理是target可以访问target的location,source可以一开始通过设置iframe的src写入hash,此时source向iframe传消息;target通过parent.location.hash或代理向source传消息。
代理的原理是source用iframe引用target,target用iframe引用proxy,source与proxy同域,所以proxy可以通过 parent.parent来访问到source。
本文出自 “DSpace” 博客,请务必保留此出处http://smqhws.blog.51cto.com/2365786/1364617
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。