什么是跨域?
- 当Ajax发送请求时, 所在的协议/域名(ip)/端口号, 和要请求的目标的协议/域名(ip)/端口号有一个不一样的, 就发生跨域.
- 注意其实请求和响应都成功了, 但是在主线程检查是否跨域时, 并且响应头里是否有CORS(如果没有), 则丢弃全部的响应内容, 不会传给JS渲染引擎 处理跨域CORS
解决方法?
// 跨域问题:(服务器和服务器之间不存在跨域问题)
// 开发过程:
// 1. 直接让后台开启cors/jsonp, 直接调用(如果用jsonp你要注意你传参的格式)
// 2. 后台不开cors/jsonp, webpack开发服务器, vue.config.js - 代理转发
// 3. 后台不开cors/jsonp, 自己本地node+express搭建服务器(开cors) - 前端请求本地localhost:4005, 本地的请求转发代码(nodejs代码)
// 打包上线:
// 1. 后台开启cors, 直接用
// 2. 后台不开cors/jsonp, 把前端项目和后台项目放在一个服务器上(同源)
// 3. 后台代码和前端代码不在一起, 本地自己写一个node+express服务器部署(请求自己的)