由于我是自行编写的拦截器,所以遇到这个问题的时候查不到任何资料。

我的 SpringBoot 跨域设置经过 deepseek 分析是没有任何问题的。但是依旧无解。

经过我观察,在我项目前端发出 post 请求后,会发送一个 options 请求,我把 options 请求添加到 allowedMethods(ORIGINS) 中,依旧不行。

由于这个 options 并不带有 Authentication 参数,所以被拦截器拦截了,这也是浏览器会报这个错误的原因。

在拦截器添加如下代码可解决此问题。

        if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
            response.setStatus(HttpServletResponse.SC_OK);
            return false; // 不再执行后续拦截器
        }

分析:在 options 请求发出后,对此请求进行一个 200 的回复即可。不要回复其他的返回代码。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐