一、跨域是什么?为什么会存在跨域?
①、广义的定义:一个域下的文档或脚本试图去请求另一个域下的资源,如:www.baidu.com去请求www.google.com下的资源;如类似:资源跳转(<a>标签链接、重定向、表单提交)、资源嵌入(<link>、<script>、<img>、<frame>等DOM标签)、脚本请求(JS发起的Ajax请求等)
狭义的定义:由浏览器同源策略限制的一类请求场景,这也是我们通常说的跨域问题
②、因为浏览器的“同源策略”
什么是同源策略?为什么要有同源策略?
a、同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。
所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
b、浏览器施加的安全限制
二、跨域的解决方式?
1、 通过jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postMessage跨域