Referrer Policy: no-referrer-when-downgrade(跨域错误)

问题说明:

浏览器发起请求时无响应,Network显示: no-referrer-when-downgrade

显示如下图:20221024052817650

 

原因分析:

  1. no-referrer-when-downgrade的意思是:降级时不推荐

从一个网站链接到另外一个网站会产生新的http请求,referrer是http请求中表示来源的字段。

  1. 此时我们按F12查看Console,截图如下:20221024052817556
  2. 出现 by CORS policy, 此为跨域问题。
  3. 什么是跨域:
    跨域是指跨域名的访问,以下情况都属于跨域:
跨域原因说明	示例
域名不同	www.jd.com 与 www.taobao.com
域名相同,端口不同	www.jd.com:8080 与 www.jd.com:8081
二级域名不同	service.jd.com 与 goods.jd.com

 

解决方案:
目前针对跨域问题大致有三种解决方案,分别为jsonp,nginx反向代理及CORS跨域方案。
这里我推荐使用第三种方案,即CORS跨域方案。

只需要在application.yml文件中按如下配置即可:

spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      globalcors:
        add-to-simple-url-handler-mapping: true
        corsConfigurations:
          '[/**]':
            allowedOrigins:
              - "http://manage.leyou.com" // 此处为需跨域的地址
            allowedHeaders:
              - "*"
            allowCredentials: true
            maxAge: 360000
            allowedMethods:
              - GET
              - POST
              - DELETE
              - PUT
              - OPTIONS
              - HEAD
      routes:
        - id: item-service   # 路由id,可以随意写
          # 代理的服务地址;lb表示负载均衡(从eureka中获取具体服务)
          uri: lb://item-service
          # 路由断言,可以配置映射路径
          predicates:
            - Path=/api/item/**
          filters:
            # 表示过滤1个路径,2表示两个路径,以此类推
            - StripPrefix=2

配置好之后我们重启服务,刷新浏览器,再次查看,发现请求成功。

 

© 版权声明
THE END
点赞13赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片