1.跨域:是指浏览器不能执行其它网站的脚本,它是优浏览器的同源celue造成的,是浏览器对js实施的安全限制.
同源策略是浏览器最核心也最基本的安全功能,具有以下特点:
-
协议相同
-
主机相同
-
端口相同
只要其中一项不相同,就会产生跨域
常见的解决方案有 3 种:
JSONP: 利用 script 标签,不受跨域限制的特点,缺点是只能支持 get 请求
CORS: 后端设置响应头 Access-Control-Allow-Origin:*
服务器代理:在 DevServer 中配置 proxy
2.配置接口代理:
vue-cli代理解决跨域问题
在后端没有开启cors的情况下,浏览器的同源策略会直接限制后端返回的数据给到前端。这是因为我们目前所有的项目都是前后分离,前端一个服务, 后端一个服务,后端不开cors只能前端自己想办法
代理是怎么解决跨域的
既然前端不能直接请求后端服务,那就搞个中间服务,中间服务刚好和我们的前端服务同源,前端和中间服务可以通信,而中间服务是node, node后台向后端发请求是不受同源策略影响的,因为同源策略只针对浏览器!!!, 这样就是代理,中间层的服务将前端的请求代理给了后端接口。
vue-cli中集成的跨域解决方案
思路: