no-referrer-when-downgrade 跨域问题

一、问题

ajax请求网关的时候,能够请求到对应的路由服务A,并且成功返回,但是在页面的开发者工具中显示的请求是无响应内容

二、背景

本地开了几个项目,分别有网关,eureka集群,服务A,服务B等,在浏览器打开nginx指向页面的时候,出现了跨域问题

三、解决方式

1.方式1:

添加config配置

config:
  gateway:
    globalcors:
      add-to-simple-url-handler-mapping: true
      corsConfigurations:
        '[/**]':
          allowedOrigins:
            - "http://localhost:8080"
          allowedHeaders:
            - "*"
          allowCredentials: true
          maxAge: 360000
          allowedMethods:
            - GET
            - POST
            - DELETE
            - PUT
            - OPTIONS
            - HEAD

2.方式2:

有HttpServletResponse的请求中,添加

public void request(HttpServletResponse response){

httpResponse.setHeader("Access-Control-Allow-Origin", httpServletRequest.getHeader("Origin"));
httpResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");

}

3.方式3:(本项目使用方式3解决)

直接在接口类中添加@CrossOrigin注解

 

### 如何在HTML中设置 `meta` 标签的 `referrer` 属性 为了实现 HTML 中的 `meta` 标签来控制页面的 Referrer Policy,可以通过以下方式完成: 在 `<head>` 部分添加如下代码片段: ```html <meta name="referrer" content="no-referrer"> ``` 此配置表示不会向外部网站发送任何引用信息[^1]。这意味着当用户点击链接离开当前站点时,目标站点无法获取到用户的来源地址。 #### 不同的 `content` 值及其含义 除了 `no-referrer` 外,还有其他可能的值可以用于更精细地调整行为[^2]: - **`no-referrer-when-downgrade`**: 只有在协议不降级的情况下才会发送 Referer 信息(默认值)。例如从 HTTPS 到 HTTP 的跳转会阻止发送 Referer。 - **`origin`**: 发送源 URL 而不是完整的路径作为 Referer。 - **`same-origin`**: 对于请求完全隐藏 Referer;但对于同一名下的请求则正常传递。 - **`strict-origin`**: 当没有协议降级时仅发送源 URL (而非完整路径),否则什么都不发。 - **`unsafe-url`**: 总是发送整个 URL 包括查询参数给第三方资源加载器——这是最危险但也可能是某些特定场景下必要的选项[^3]. 上述每种策略都有其适用场合以及潜在风险,请根据实际需求谨慎选择合适的 policy. #### Vue项目中的具体应用实例 对于基于Vue框架构建的应用程序来说, 如果希望全局生效该设置,则可以在位于 `public/index.html` 文件内的头部区加入相应的 `<meta>` 定义: ```html <!DOCTYPE html> <html lang="en"> <head> <!-- Other head elements --> <meta charset="UTF-8"> <title>Your App Title</title> <!-- Setting the referrer policy to 'no-referrer' --> <meta name="referrer" content="no-referrer"> </head> <body> <div id="app"></div> <!-- built files will be auto injected --> </body> </html> ``` 这样做的好处在于能够增强隐私保护并减少不必要的数据泄露可能性[^4]. 另外需要注意的是,在现代浏览器环境下还可以利用HTTP响应头字段 `Referrer-Policy` 来达到相同目的,不过本文主要讨论通过HTML文档内部定义的方式来进行操作[^5].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值