我花了太多时间在这上面,我想我会分享我发现的东西。我很惊讶我找不到这些信息,因为它似乎是任何应用程序都必须拥有的。
我希望能够在发生错误时从Sping Boot REST API将额外的数据发送回客户端。大概是这样的:
>curl -i GET https://api.twitter.com/1.1/statuses/update.json?include_entities=true
HTTP/1.1 400 Bad Request
date: Fri, 14 Jul 2023 15:23:34 GMT
content-type: application/json; charset=utf-8
cache-control: no-cache, no-store, max-age=0
content-length: 62
{"errors":[{"code":215,"message":"Bad Authentication data."}]}
字符串
我可以用curl来实现这一点,但是在浏览器中,没有收到响应数据。我使用Google开发工具查看网络流量确认了这一点。数据是从我的REST API发送的。
我本来希望在这些链接中找到一些有用的信息,但我没有。
Error Handling for REST with Spring
Best Practices for REST API Error Handling的
2条答案
按热度按时间bxpogfeg1#
解决方案是CORS相关问题。将
Access-Control-Allow-Origin
添加到header是解决方案。如果要全局捕获所有异常并发回有意义的响应,需要执行以下操作。原谅我,因为我是新来的,所以如果有什么我错过了,请让我知道。
全局异常处理程序:
字符串
和我的响应异常类
型
现在,我可以取回数据,它可以在CURL和WebBrowser中使用,最重要的是,可以在我的前端客户端使用。
型
qni6mghb2#
无需手动设置
Access-Control-Allow-Origin
头。@CrossOrigin
注解可用于直接在控制器或任何处理程序方法上配置CORS。字符串