Spring PostMapping return 401 无正文
Spring PostMapping return 401 without body
我想创建一个 Post
来将一些数据写入数据库,但是所有需要的信息都存储在服务器上,所以我的 Post
服务不需要主体:
@PostMapping("foo")
public @ResponseBody
RestResponse writeFoo() {
// WRITE AND RETURN
}
如果我尝试向此服务发出 post 请求,即使我传递了有效令牌,我也会收到 401。如果我将公开的服务更改为 GetMapping
,一切都会按预期进行。看来我无法处理空主体的 Post
请求。
我试过添加一些假参数作为
RestResponse writeFoo(@RequestBody(required = false) String fake)
但没有成功。
有什么想法吗?
您解释的问题最常见的原因是配置错误(或缺失?)。
注意你的REST默认允许GET方法API,而你需要指定其他方法类型(即PUT和POST),否则将无法运行由于 CORS 的原因。
GET 方法有效而 POST 方法无效的部分是对 missing/incorrect CORS 配置的强烈暗示。您可以通过添加一些 CORS 过滤器并设置您的响应来快速修复它 headers.
官方文档应该会给你一个好的开始,如果你不知道去哪里找:Spring docs - enabling CORS
更新:
问题已成功解决,查看评论区了解更多信息。
短篇小说 - CORS/CSRF 令牌的 back-end 配置在这种特殊情况下已正确设置, 问题是由于 [=29] 上缺少 header(CSRF 令牌) =] webapp 的一部分。
我想创建一个 Post
来将一些数据写入数据库,但是所有需要的信息都存储在服务器上,所以我的 Post
服务不需要主体:
@PostMapping("foo")
public @ResponseBody
RestResponse writeFoo() {
// WRITE AND RETURN
}
如果我尝试向此服务发出 post 请求,即使我传递了有效令牌,我也会收到 401。如果我将公开的服务更改为 GetMapping
,一切都会按预期进行。看来我无法处理空主体的 Post
请求。
我试过添加一些假参数作为
RestResponse writeFoo(@RequestBody(required = false) String fake)
但没有成功。
有什么想法吗?
您解释的问题最常见的原因是配置错误(或缺失?)。
注意你的REST默认允许GET方法API,而你需要指定其他方法类型(即PUT和POST),否则将无法运行由于 CORS 的原因。
GET 方法有效而 POST 方法无效的部分是对 missing/incorrect CORS 配置的强烈暗示。您可以通过添加一些 CORS 过滤器并设置您的响应来快速修复它 headers.
官方文档应该会给你一个好的开始,如果你不知道去哪里找:Spring docs - enabling CORS
更新:
问题已成功解决,查看评论区了解更多信息。 短篇小说 - CORS/CSRF 令牌的 back-end 配置在这种特殊情况下已正确设置, 问题是由于 [=29] 上缺少 header(CSRF 令牌) =] webapp 的一部分。