24 条回复  ·  2627 次点击
adov 初学 2025-7-3 17:33:22
就是你后端的 Access-Control-Allow-Methods 没配置对,你看看 options 请求的返回,让后端配置到对为止
199808lanlan1111 初学 2025-7-3 17:38:13
刚遇到同个问题 allowedOrigins 不支持配置*,看是否能配置 config.addAllowedOriginPattern ,这个支持*,我是不能配置后者,重写了 config 判断*的逻辑
unco020511 小成 2025-7-3 17:44:37
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Guides/CORS/Errors/CORSNotSupportingCredentials
Aolose 初学 2025-7-3 17:45:10
不了解 java 但是我觉得预检请求 应该允许 option 而不是只是 post 另外非 bug 预检一般会返回 204 这个 ResponseEntity.ok() 是不是默认 200 ?(当然这不影响啥 @RequestMapping(value = "/getLaborOrder/list", method = RequestMethod.OPTIONS) public ResponseEntity handleOptions() { return ResponseEntity.ok() .header("Access-Control-Allow-Origin", "*") .header("Access-Control-Allow-Methods", "POST") .header("Access-Control-Allow-Headers", "Content-Type") .build(); }
Al0rid4l 小成 2025-7-3 21:55:05
你最好是把请求报文和响应报文贴出来(浏览器, 或者抓包代理), 而不是贴请求工具的截图, 只有一点点信息让人搁这猜, 很累的. 查 CORS 问题最好的办法就是贴原始报文而不是贴代码 然后, 假设你图里都是响应报文, 那肉眼可见的问题有 Access-Control-Allow-Methods 只允许了 POST 而没有 OPTIONS, 虽然看你 Java 代码里有 allowedMethods 给了 OPTIONS, 但也不知道有没有执行到这里或者有其他中间件提前响应或覆盖响应头, 这个要后端去查. 你说添加了还是不行, 至少从你第二张图看来, 它没生效呀...没看出来添加了个啥 请求里有个 Authorization 头, 但响应头 Access-Control-Request-Headers 又只有 Content-Type, 虽然 Java 代码里的设置也是 allowedHeaders("*"), 但还是上面一样的问题, 反正最终响应只有 Content-Type 而没有允许 Authorization 另外还不知道前端请求有没有设置 withCredentials, 如果有的话, 后端配置 Access-Control-Allow-Origin 是不能用*的 还有这个 login 接口是个 GET, auth 还在 URL, 所以是个简单请求就过去了, 不过也挺抽象的...
123
返回顶部