跨域
1.域名不同:www.baidu.com和www.taobao.com,www.taobao.org
2.域名相同,端口不同。localhost:8080和localhost:8081
跨域问题
浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题。
解决方案
CORS
浏览器询问服务器是否允许跨域,询问是option请求。
网关中跨域的解决方案
前端启动的端口是8090,访问后端的地址是路由地址 localhost:10010
server:port: 10010 # 网关端口
spring:application:name: gateway # 服务名称cloud:nacos:server-addr: localhost:8848 # nacos 地址gateway:globalcors: # 全局的跨域处理add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题corsConfigurations:'[/**]': # 拦截一切请求allowedOrigins: # 允许哪些网站的跨域请求- "http://localhost:8090"- "http://www.leyou.com"allowedMethods: # 允许跨域ajax的请求方式- "GET"- "POST"- "DELETE"- "PUT"- "OPTIONS"allowedHeaders: "*" # 允许在请求中携带头信息allowedCredentials: true # 是否允许携带cookiemaxAge: 360000 # 这次跨域检测的有效期,有效期内将不再发起询问服务器是否允许跨域的请求routes:- id: user-service # 路由id,自定义,只要唯一即可uri: lb://user-service # 路由的目标地址lb是负载均衡,后面跟服务名称predicates: # 路由断言,判断请求是否符合路由的规则的条件- Path=/user/** # 这个是按照路径匹配,只要以/user/开头就符合要求- id: order-serviceuri: lb://order-servicepredicates:- Path=/order/**filters: # 过滤器,只对order-service的路由请求生效- AddRequestHeader=truth,xkj will be success. # 添加请求头 order 1default-filters: # 默认过滤器,会对所有的路由请求都生效- AddRequestHeader=common,everyone can be success. # order 1