什么是跨域?
一个域名请求另外一个域名的资源
同源策略是浏览器核心的安全功能
域名,协议,端口,只要其中有一个不同就会产生跨域
![](https://img-blog.csdnimg.cn/img_convert/b86fc90be7d468b74457cd2f85a01b97.png)
执行流程
浏览器根据协议,ip,端口检查当前异步请求url是否跟服务访问页面中的协议,ip,端口是否一致,例如浏览器是80端口,访问服务器81端口就会产生跨域请求
如果不一致,浏览器就会发送跨域请求访问服务器是否支持跨域
![](https://img-blog.csdnimg.cn/img_convert/26e3979838b02784f09a888ee409236d.png)
![](https://img-blog.csdnimg.cn/img_convert/cc8daa990086e35fbb96b7a45d15aec6.png)
服务器接收到询问是否可以跨域请求,然后服务器响应跨域允许响应头
Access-Control-Allow-Origin
允许跨域
![](https://img-blog.csdnimg.cn/img_convert/cd7b7446b6e7a9b4977dcf33a55e7a6f.png)
不允许跨域没有响应Access-Control-Allow-Origin
![](https://img-blog.csdnimg.cn/img_convert/cfc4250dfbe16f0c9c0ac32fe7b307a1.png)
如果浏览器接收到响应,会解析数据,如果发现有跨域响应头Access-Control-Allow-Origin 并且是允许的,就会发出真实响应,如果不允许就会抛出跨域异常