Spring PostMapping 返回不带正文的 401



我想做一个Post将一些数据写入数据库,但所有需要的信息都存储在服务器上,所以我的Post服务不需要正文:

@PostMapping("foo")
public @ResponseBody 
RestResponse writeFoo() {
// WRITE AND RETURN
}

如果我尝试向此服务发出发布请求,即使我传递了有效的令牌,我也会收到 401。如果我将公开的服务更改为GetMapping则一切按预期工作。似乎我无法用空体管理Post请求。

我尝试添加一些假参数作为

RestResponse writeFoo(@RequestBody(required = false) String fake)

但没有成功。

知道吗?

您解释的问题通常是配置错误(或缺失?(的原因。

请注意,默认情况下,REST API 允许 GET 方法,而您需要指定其他方法类型(即 PUT 和 POST(,否则由于 CORS 的原因,它将无法开箱即用。

GET方法有效而POST方法不起作用的部分是CORS配置缺失/不正确的强烈提示。您可以通过添加一些 CORS 过滤器并设置响应标头来快速修复它。

官方文档应该给你一个良好的开端,如果你不知道在哪里寻找: Spring 文档 - 启用 CORS

更新:

问题已成功解决,请查看评论部分以获取更多信息。 简短的故事 - 在这种特殊情况下,CORS/CSRF 令牌的后端配置已正确设置,由于 Web 应用程序的角度/前端部分缺少标头(CSRF 令牌(而出现问题。

相关内容

  • 没有找到相关文章

最新更新