1.什么是跨域问题
- 简单来说就是前台调用后台接口,但是在不同的域,所以不允许通信。更详细的说明可以看下图:
2.为什么会跨域
- 1.浏览器限制(不是服务不允许我们跨域)
- 2.跨域(协议、端口、域名等不同)
- 3.XHR(XMLHttpRequest)请求
img的请求不是XMLHttpRequest请求所以不会跨域
3.解决思路
-
1.jsonp
- 原理:发出一个script请求,而非XHR请求,但是同时需要与后台预约好callback的name,并且后台也必须返回给我们需要返回js代码。jsonp是发出一个script请求,所以只支持get请求
-
2.隐藏跨域
- 使用nginx进行反向代理,伪装成在同一个源下。配置举例如下
- 使用nginx进行反向代理,伪装成在同一个源下。配置举例如下