什么是跨域?
这个问题在前端面试中也是屡见不鲜,我和大家也是一样,对此有很多疑问,遍查很多资料,于是想着总
结到这里,供自己以后参考补充。
跨域
这里不得不先提一下关于同源策略的概念,
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
而这里跨域指的是浏览器不能运行其他网站的脚本,这是由于浏览器的同源策略造成的。
简单来说哈,二个URL请求的协议、域名、端口号三者之中,如果有一个不同,则称之为跨域。
下面举几个例子:
当前页面:http://baidu.com ; 被请求页面:http://baidu.com/index.js | 未跨域(协议、主机、端口号一致) |
---|---|
请求页面:http://baidu.com ; 被请求页面:https://baidu.com | 跨域(协议不一致) |
请求页面:http://baidu.com ; 被请求页面:http://ranmo.com | 跨域(域名不一致) |
请求页面:http://baidu.com ; 被请求页面:http://badu.com:81 | 跨域(端口号不一致) |
跨域的几种情况大致分为以上几种,
而对于跨域,解决办法又是什么呢?
请大家后面听我细细道来,今天先写到这。。。