最近浏览博客,偶然看到一些关于跨域请求的问题,之前面试的时候也有被问到过。于是突然想深刻的认识一下这个技术问题。在网上搜索了一些资料,现在整理如下:
想要解决这个问题,必须要弄清楚什么是跨域和跨域问题产生的原因!
那么什么是跨域? 跨域是指浏览器不能执行其他网站的脚本。那么为什么不能执行呢,是因为浏览器的同源策略引起的, 同源策略是浏览器的一种安全机制。
什么是同源呢? 同源是指两个URL的域名,协议,端口都相同。
为了更好的明白,举例说明:
(1) http://www.lty.com/index.html 调用 http://www.lty.com/test.php -------->非跨域
(2) http://www.lty.com/index.html 调用 http://www.zt.com/test.php -------->主域名不同:lty/zt 跨域
(3) http://abc.lty.com/index.html 调用 http://def.lty.com/test.php -------->子域名不同:abc/def 跨域
(4) http://www.lty.com:80/index.html 调用 http://www.lty.com:8080/test.php -------->端口不同:80/8080 跨域
(5) http://www.lty.com/index.html 调用 https://www.lty.com/test.php -------->协议不同:http/https 跨域