java解决跨域问题时的403报错

news/2024/10/5 9:37:38 标签: java, 后端

什么是跨域问题?

当一个请求的url的协议,域名,端口三者之间任意一个与当前页面url不同 即为跨域

问题背景: 

如图,前端端口为8090,而后端端口为8099,形成跨域,无法对接

试图利用SpringBoot解决该问题

添加CORS过滤器:新建配置类CorsConfig:创建CorsFilter过滤器,允许跨域

java">@Configuration
public class CrosConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET","POST","HEAD","PUT","DELETE","OPTIONS")
                .allowCredentials(true)
                .maxAge(3600)
                .allowedHeaders("*");
    }
}
java">@Configuration
public class GlobalCorsConfig {

    /**
     * 允许跨域调用的过滤器
     */
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        //允许所有域名进行跨域调用
        config.addAllowedOrigin("*");
        //允许跨越发送cookie
        config.setAllowCredentials(true);
        //放行全部原始头信息
        config.addAllowedHeader("*");
        //允许所有请求方法跨域调用
        config.addAllowedMethod("*");
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}

以上两段代码尝试后,均报以下错误:

获取不到token值:

即:后端配置了跨域过滤器,但还是造成了跨域问题

问题解决:

发现vue发起的两遍请求,第二遍不带token

跨域问题从写好跨域过滤器后 本质上就已经解决了,所以无需更改跨域过滤器

更改前端端口号 如下:info仍在报错

一通排查,发现是后端代码问题:

在SecurityConfig中将“/admin/info”添加到白名单中

终于!!

得到最终token

如果还有问题,前后端对照,vue2.0的一个特性是会自动发起info请求,检查后端逻辑代码中是否有接口接收并处理info


http://www.niftyadmin.cn/n/5690853.html

相关文章

初识算法 · 双指针(1)

目录 前言: 双指针算法 题目一: ​编辑 题目二: 前言: 本文作为算法部分的第一篇文章,自然是少不了简单叭叭两句,对于算法部分,多刷是少不了,我们刷题从暴力过度到算法解法,自…

注册键AlwaysInstallElevated

原理 允许低权限用户以System权限安装文件。如果启用此策略设置项,那么任何权限的用户都以NT Authority\System权限来安装恶意的MSI文件。 windows install是windows操作系统的组件之一,专门用来管理配置软件服务。木马格式(.msi&#xff09…

我博客网站又遭受CC攻击了,记录一下

2024.9.29凌晨4点攻击开始,攻击目标是我的图床tc.zeruns.tech和博客blog.zeruns.tech,图床用的cdn是多吉云融合CDN,流量被刷了20GB左右就触发峰值关闭CDN了,HTTPS请求次数被刷了1.1亿次,因为设置了QPS,实际…

【NIO基础】基于 NIO 中的组件实现对文件的操作(文件编程),FileChannel 详解

目录 1、FileChannel (1)获取 FileChannel (2)读取文件 (3)写入文件 (4)关闭通道 (5)当前位置与文件大小 (6)强制写入磁盘 2、两个 FileChannel 之间的数据传输 (1)使用 transferTo()…

Java中的数据格式转换:JSON、XML与Protobuf的应用与选择

Java中的数据格式转换:JSON、XML与Protobuf的应用与选择 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们要聊的主题是Java开发中经常涉及到的一个重要问题——数据格式转换。…

《C++游戏人工智能开发:开启智能游戏新纪元》

在当今的游戏世界中,人工智能(AI)已经成为了不可或缺的一部分。它能够为游戏增添深度、挑战性和真实感,让玩家沉浸其中,享受前所未有的游戏体验。而对于 C开发者来说,如何在 C中实现高效的游戏人工智能开发…

【HTTP(3)】(状态码,https)

【认识状态码】 状态码最重要的目的,就是反馈给浏览器:这次请求是否成功,若失败,则出现失败原因 常见状态码: 200:OK,表示成功 404:Not Found,浏览器访问的资源在服务器上没有找到 403:Forbidden,访问被…

webpack信息泄露

先看看webpack中文网给出的解释 webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换、打包或包裹任何资源。 如果未正确配置,会生成一个.map文件,它包含了原始JavaScript代码的映…