【SpringBoot】MVC配置解决跨域但仍然存在跨域
创始人
2024-04-13 06:09:34

文章目录

  • 1. 跨域问题出现与解决

1. 跨域问题出现与解决

image-20221126165938069

检查SpringBoot中的MVC配置。

public void addCorsMappings(CorsRegistry registry) {//允许跨域访问资源定义registry.addMapping("/**")//(只允许本地的指定端口访问)允许所有.allowedOrigins("*")// 允许所有方法.allowedMethods("*")//允许所有请求头.allowedHeaders("*").maxAge(3600);
}

发现后端已经允许跨域了。所以排除后端未进行跨域解决的猜想。

接着查看后端日志

image-20221126170320309

这里出现了两次缺少token,检查浏览器网络信息

image-20221126170447658

发现这里有两次请求,点开第一个请求

image-20221126170530989

第一个请求携带了token,但是并未成功请求

接着查看第二个请求

image-20221126170606184

第二个请求并无token,并且状态码为500。

Tps:

options 请求就是预检请求,可用于检测服务器允许的 http 方法。当发起跨域请求时,由于安全原因,触发一定条件时浏览器会在正式请求之前自动先发起 OPTIONS 请求,即 CORS 预检请求,服务器若接受该跨域请求,浏览器才继续发起正式请求。

因此,应该是因为OPTIONS请求未携带token,被SpringMCV的拦截器拦截下来,导致预检请求(CORS 预检请求)未成功,因此报了跨域错误。

在拦截器中打印一下请求的方式

image-20221126171235226

通过后端日志发现两个无token均为OPTIONS请求,并且两个OPTIONS请求均无通过拦截器,因此我在SpringMVC的拦截器中尝试放行OPTIONS请求,看问题能不能解决。

if ("OPTIONS".equals(request.getMethod())) {//true是直接放行return true;
}

image-20221126172027329

跨域问题成功解决!!!


相关内容

热门资讯

广州值得去的免费旅游景点介绍 ... 广州旅游资源丰富,其中以羊城新八景、中山纪念堂,上下九路、北京路更是十分著名。但是这些不用钱也很出名...
上海免费旅游景点攻略 上海晚上... 上海,它繁华、小资、国际化,同时它也老陈、市井、生活化。现在的上海已是摩天大厦林立的魔都,在现代化的...
上海附近免费景点介绍 上海周边... 中秋小长假就要来啦!郊游踏青,天然氧吧,来一次深呼吸吧!什么?没钱?没关系!下面是太阳教育网小编为大...
重庆免费的旅游景点攻略 重庆赏... 免费去科技馆还不过瘾?一大波重庆免费景点来了,看看就觉得好多周末都有地方去了!下面是太阳教育网小编为...
上海旅游必去免费景点 上海免费... 近春光明媚、鸟语花香,最适合我们出去看看风景,结交朋友。但是一想到要花好多钱,你的内心肯定是拒绝的吧...