1.什么是同源策略
- 同源就是协议、域名、端口号相同。
- 协议: http、https
- 域名 :www.jirengu.com
- 端口号:http协议默认端口80,https协议默认端口443
同源策略是为了浏览器安全而制定的一种规则,如果你的网站想要访问的资源不是同源的就会被拒绝,就好比京东要访问淘宝的资源,因为他们的域名不同,两个网站就不同源,所以会被拒绝。
2.什么是跨域?跨域有几种实现形式
跨域就是突破同源策略的限制。
跨域的几种实现形式:
降域:(1)域名后缀相同chilid1.a.com和chilid2.a.com
(2)设置document.domain = xxx.html完成降域,就可以跨域了。JSONP(json with padding)只支持get请求,安全性不好,兼容性好。
CORS (cross-origin-resource-sharing)
html5中的window.postMessage来实现跨域。
3.jsonp 的原理是什么
利用script标签的跨域性,在页面上动态添加一个<script src=""></script>,让script标签请求需要的资源,服务器将数据放在一个回调函数上传回来,然后页面上已经定义好此函数,所以会立即执行。
4.CORS是什么
- 跨域资源共享(cross origin resource sharing),它允许浏览器向跨域服务器发送XMLHttpRequest请求,克服了Ajax只能同源使用的限制。
- 只支持ie11及以上的浏览器

Paste_Image.png
代码
-
同源策略演示:
-
修改hosts文件
Paste_Image.png -
在xampp下测试
Paste_Image.png 代码如下:

Paste_Image.png
-
跨域
1、 CORS
在上面的php文件中添加header('Access-Control-Allow-Origin: http://a.com');

Paste_Image.png

Paste_Image.png
2、JSONP

Paste_Image.png
代码:

Paste_Image.png

