同源策略
如果非同源,以下三种行为将受到限制:
- Cookie、LocalStorage 和 IndexedDB 无法读取。
- DOM 无法获得。
- AJAX 请求不能发送。
同源是指: - 协议相同
- 域名相同
- 端口号相同
同源策略是为了保证用户信息的安全,防止恶意的网站窃取数据。
跨域?跨域有几种实现形式
跨域是指因为Javascript同源策略的限制,非同源的脚本不能相互通信
跨域的实现形式:
- JSONP
- CORS
- 降域
- PostMessage
JSONP 的原理是什么
虽然浏览器默认禁止了跨域访问,但并不禁止在页面中引用其他域的JS文件。因此根据这一点,可以方便地通过创建script节点的方法来实现跨域的通信。JSOP的基本思想是网页通过添加一个<script>元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数里传回来。
CORS是什么
CORS是一个W3C标准,全称是“跨域资源共享”(Cross-origin resource sharing)。CORS通信过程是浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,服务器端则需要解析这些的请求头信息,并按照策略返回相应的响应头以及所请求的资源。
网友评论