微服务开发------过滤器执行顺序和跨域问题处理

第二天 h:

过滤器执行顺序:

请求进入网关时,会碰到三类过滤器:当前路由的过滤器,DefaultFilter,GlobalFilter。

请求路由后会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器。

1.每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前。
2.GlobalFilter通过实现Ordered接口,或者添加@Order注解来指定order值,由我们自己指定
3.路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增。
4.当过滤器的order值一样时,会按照 defaultFilter > 路由过滤器 > GlobalFilter的顺序执行。

 这里是几个类的源码。

跨域问题处理:

跨域:域名不一致就是跨域,主要包括:
1.域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com
2.域名相同,端口不同:localhost:8080和localhost8081
跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题
解决方案:CORS
spring: 
   cloud:
     gateway:
       globalcors: # 全局的跨域处理
       corsConfigurations:
           '[/**]' # 任意请求(这里写拦截哪些请求)
              allowedOrigins: # 允许哪些网站的跨域请求
                 - "http://localhost:8090"
                 - "http://www.leyou.com"
              allowedMethods: # 允许的跨域ajax请求
                 - "GET"
                 - "POST"
                 - "DELETE"
                 - "PUT"
                 - "OPTIONS"
              allowedHeader: "*" # 允许在请求中携带的头部信息
              allowedCredentials: true # 是否允许携带cookie
              maxAge: 360000 # 这词跨域检测的有效期

把这段配置直接写入GatewayFilter中的yml文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值