- 浏览器的同源策略
- 浏览器发起请求的过程
浏览器发起请求->服务端响应请求->浏览器检查access-allow-origin->符合请求成功/不符合则显示跨域
- 哪些算是跨域?
- 只要协议、域名、端口不同即为跨域
- 主域名相同,子域名不同,比如:b.a.com和c.a.com即为跨域
- 前端解决方案
- webpack:相当于本地启动了一个服务器,浏览器通过localhost:3000访问到服务器的资源和接口数据。比如我们需要访问:test.a.com/api/user,通过proxy配置,我们访问localhost:3000/api/user时,webpack启动的服务器就会把这个请求转发到test.a.com/api/user,服务器转发这个过程是没有同源策略的,因此解决了跨域问题
- 后端解决方案
- 修改请求头