1.什么是同源策略
同domain即域名(或ip),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源。这种安全限制称为同源策略。
2. 什么是跨域?跨域有几种实现形式
跨域是指从一个域名的网页去请求另一个域名的资源。比如从http://www.baidu.com/ 页面去请求 http://www.google.com 的资源。跨域的严格一点的定义是:只要一个源向另一个 协议,域名,端口有任何一个的不同的源请求资源,就被当作是跨域。
跨域实现形式:
- JSONP
- CORS:跨域资源共享(Cross-Origin Resource Sharing)
- 降域
- postMessage()
3. JSONP 的原理是什么
JSONP基本思想是,网页通过添加一个<script>元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数里传回来,之后有例子。
4. CORS是什么
CORS的全称是Cross-Origin Resources Sharing,它允许浏览器向跨源服务器,发出请求,从而克服了AJAX只能同源使用的限制。
原理
<li>CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10;
<li>整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
<li>实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。
5.实现跨域的一些方法
JSONP实现
CROS实现
降域实现
postMessage实现
代码
感谢瓜子观众:
版权归饥人谷peter和饥人谷所有,若有转载,请注明来源