跨域
-
为什么出现跨域?
浏览器同源策略的限制,浏览器会拒绝跨域请求,url由协议,域名,端口,路径组成,同源指的是协议,域名,端口相同就表示同源,浏览器同源策略,控制着不同源之间的交互,限制了来自不同源的document和脚本,对当前document的读取或设置某些属性。
-
跨域的解决方案
我知道3种方案:
第一种 jsonp
是利用script标签,src为想要访问的网址标签,传递一个回调函数名给后端 比如a.com想要访问b.com,那么在b.com中可以接受到传递的参数callback,然后执行, jsonp只能发get请求,不可以发post请求。 juejin.cn/post/684490…
第二种 iframe跨域
此方案适用于主域相同,子域不同,给两个页面指定一下document.domain,这个方法强制以domain.com为主域,实现了为相同域,

A上的页面获取B上的资源。浏览器会检查服务器B的http头(Head请求),如果Access-Control-Allow-Origin中有A或者是通配符*,浏览器就会允许跨域,这就叫CORS。
第四种 服务器代理
服务器端不存在跨域问题。