一、什么是跨域
了解跨域之前先了解同源策略。
同源策略:即浏览器为保障用户的安全,浏览器为了保证用户信息的安全,防止恶意的网站窃取数据,禁止不同域之间的JS进行交互。对于浏览器而言只要域名、协议、端口其中一个不同就会引发同源策略,从而限制他们之间如下的交互行为:
1、Cookie、LocalStorage 和 IndexDB 无法读取;
2、 DOM 无法获得;
3、 AJAX 请求不能发送。
只有协议、域名、端口都相同才是同域,否则就是跨域。
http://www.123.com/index.html 调用 | http://www.123.com/server.php (非跨域) |
http://www.123.com/index.html 调用 | http://www.456.com/server.php (主域名不同:123/456,跨域) |
http://abc.123.com/index.html 调用 | http://def.123.com/server.php (子域名不同:abc/def,跨域) |
http://www.123.com:8080/index.html 调用 |