一、什么是源和跨域
源(origin)就是协议、域名和端口号。
URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口全部相同,则表示他们同源。否则,只要协议、域名、端口有任何一个不同,就是跨域。
二、什么是同源策略
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
例如:http://localhost:3005/main.html 展示的是一个页面,这个页面需要调用不同的接口,
例如http://localhost:8089/auth/XXX,这种就跨域了
防止页面被攻击嵌入js代码重定向到别的服务器
因为端口不同
三、解决方法
如果是内网就后台springcloud配置全部放开
gateway:
globalcors:
# 跨域配置
corsConfigurations:
'[/**]':
#允许访问携带cookie的
allowCredentials: true
#可以填写多个域名用","隔开 "*"代表允许所有
allowedOrigins: "*"
allowedMethods: "*"
allowedHeaders: "*"
或者在Spring Boot 2.X应用程序中可以使用注解**@CrossOrigin**,也可以通过使用WebMvcConfigurer对象来定义全局CORS配置。
如果是外网就用Nginx反向代理解决跨域