什么是同源策略和限制?
源
:= 协议 + 域名 + 端口
同源策略
在MDN中有如下解释:
同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。
这是一个用于隔离潜在恶意文件的关键的安全机制。
什么是限制
:
当源不一样时,就产生了跨域。不是一个源的文档没有权利去操作另一个源的文档。具体表现为:
- Cookie、LocalStorage、IndexDB 无法读取
- DOM 无法获得
- AJAX请求无法发送
前后端如何通信?
- AJAX(同源)
- WebSocket(不受同源策略限制)
- CORS(支持跨域也支持同源通信)
如何创建Ajax
- XMLHttpRequest
- 兼容性处理
- 事件触发条件
- 事件触发顺序
跨域通信的几种方式
JSONP
(1)动态创建一个<script>
标签,发送给服务端一个包含回调名callback
,并且在本地创建一个与回调名相同的全局函数
(2)服务端返回数据
(3)浏览器将返回的数据当成js来执行WebSocket
- CORS //可以理解为支持跨域通信的AJAX
- Hash //页面不刷新也能获取新资源
- postMessage //H5中新增的标准