什么是同源策略及限制
先确定一个概念,什么是源?
一个源包含三部分内容:协议域名和端口。
比如慕课网http://www.imooc.com,就是协议,域名,加默认的端口80.所以这三个构成一个源。
有一个不一样,就是源不一样,就是跨域了。
什么是限制:不是一个源的文档,没有权利去操作另一个源的文档。
1.Cookie,LocalStorage,IndexDB无法读取
2.DOM无法获得
3.ajax请求不能发送
注意一点:脚本本身的来源并不作为判断是否同源的依据,而是将脚本所属文档的来源作为判断依据。
- 判断脚本来源 例如:文档A中通过script的src引用了一个外部脚本,这个脚本时google提供的,也是从google的主机上加载到文档A中的,那么这个脚本的所属文档是谁呢,答案是文档A。
- 判断是否同源。理解了脚本来源,接着理解怎么判断是否同源:如果两个文档在协议、主机以及载入文档的URL端口这三点中有一点不同,就认为他们不同源。
前后端如何通信
1.ajax 同源
2.websocket 不限制同源
3.CORS 支持跨域,也支持同源通信,是一个新的通信标准。
如何创建ajax
重点:
1.XMLHttpRequest高级浏览器才能支持,IE不支持,以及Firefox。重点看你逻辑,思维方式,考虑到IE的兼容方式。
2.事件触发条件,某个事件在什么情况下触发。
3.事件顺序不能错,每个事件是怎样依次触发。