请求网站出现no-referrer-when-downgrade

来源:csdn博客 分类: 文章浏览史 发布时间:2020-08-09 17:57:29 最后更新:2020-08-09 浏览:6275
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2020-08-09 17:57:29

问题说明:

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

显示如下图:
在这里插入图片描述

原因分析:

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

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

  1. 此时我们按F12查看Console,截图如下:
    在这里插入图片描述
    出现 by CORS policy, 此为跨域问题。

  2. 什么是跨域:
    跨域是指跨域名的访问,以下情况都属于跨域:

跨域原因说明 示例
域名不同 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

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

在这里插入图片描述

php技术微信