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

什么是跨域问题?

当一个请求的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

相关推荐
Alsn867 分钟前
27.IDEA 专业版创建与打包 Java 命令行程序
java·ide·intellij-idea
毕设源码-郭学长10 分钟前
【开题答辩全过程】以 基于JAVA的车辆违章信息管理系统设计及实现为例,包含答辩的问题和答案
java·开发语言
while(1){yan}10 分钟前
UDP和TCP的核心
java·开发语言·网络·网络协议·tcp/ip·udp
麒qiqi14 分钟前
【Linux 进程间通信】信号通信与共享内存核心解析
java·linux·算法
后端小张15 分钟前
【Java 进阶】深入理解Redis:从基础应用到进阶实践全解析
java·开发语言·数据库·spring boot·redis·spring·缓存
柯南二号15 分钟前
【后端】【Java】RabbitMQ / RocketMQ / Kafka / Redis 消息队列深度对比与选型指南
java·java-rocketmq·java-rabbitmq
木心爱编程23 分钟前
【Qt 5.14.2 新手实战】QTC++入门筑基——10 分钟做个文本编辑器:QLineEdit + QTextEdit 核心用法
java·c++·qt
楠枬25 分钟前
Nacos
java·spring·spring cloud·微服务
ShadowSmartMicros28 分钟前
SpringAi调用Mcp
java·ai
MediaTea29 分钟前
思考与练习(第四章 程序组成与输入输出)
java·linux·服务器·前端·javascript