前端ajax跨域及解决方案小记

560 阅读1分钟

1.什么是跨域问题

  • 简单来说就是前台调用后台接口,但是在不同的域,所以不允许通信。更详细的说明可以看下图:

2.为什么会跨域

  • 1.浏览器限制(不是服务不允许我们跨域)
  • 2.跨域(协议、端口、域名等不同)
  • 3.XHR(XMLHttpRequest)请求

img的请求不是XMLHttpRequest请求所以不会跨域

3.解决思路

  • 1.jsonp

    • 原理:发出一个script请求,而非XHR请求,但是同时需要与后台预约好callback的name,并且后台也必须返回给我们需要返回js代码。jsonp是发出一个script请求,所以只支持get请求
  • 2.隐藏跨域

    • 使用nginx进行反向代理,伪装成在同一个源下。配置举例如下