同源策略及规避方法

实现要贴的是来自大神阮一峰的参考文献:浏览器同源政策及其规避方法
然后是window.name的作用示例: window.name 跨域实现原理及实例
HTML5安全:CORS(跨域资源共享)简介。。。ie67不要想了。。。
看完以上文章觉得真是精彩,但有些知识点个人认为值得注意注意。
1. window.name容量为2mb,出现的目的是起初是为了解决cookie小的问题(80kb)
2. window.name在通讯前还是需要跳转到同源名下的网址,但window.name中的信息不变,进而实现通讯(结合上面第二个参考文献看,会发现和不能跨越的ajax配合,爽歪歪!!!)
3. ajax不能跨域?用cors可以,而且ie8支持(对于现在来说我认为一般ie8支持就算可以随便用了!),值得注意的是服务器需要设置Access-Control-Allow-Origin,如果是别人家的服务器。。。那么你就想想别的路子吧。(cors使用请参考开头提供的第三个文献)
4. 更方便简洁的方法是postMessage,h5的api,兼容性就呵呵啦。要注意的是该api的语法:
otherWindow.postMessage(message,targetOrigin, [transfer]);
其中特别特别特别注意otherWindow

MDN原文解释:otherWindow:其他窗口的一个引用,比如iframe的contentWindow属性、执行window.open返回的窗口对象、或者是命名过或数值索引的window.frames。MDN原文解释:otherWindow:其他窗口的一个引用,比如iframe的contentWindow属性、执行window.open返回的窗口对象、或者是命名过或数值索引的window.frames。

这里第一次见到会有点措手不及,比如我给你个东西,主语应该是‘我’,这里是‘你’的感觉。。。

完。

发表评论

电子邮件地址不会被公开。 必填项已用*标注