用的hibernate+springmvc+spring 都是4.0+的,用了jackson-annotation,jack-core,jackson-databind,都是2.6.0版本,开启了mvc:annotation-driven,然而返回json总是报406:The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.
1条回答 默认 最新
你知我知皆知 2024-08-04 12:32关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题可能是由以下原因引起的:
- 你的JSON数据在服务器端没有正确编码。你可能需要检查你的控制器方法是否正确地将响应对象转换为JSON。
public ResponseEntity<String> saveUser(User user) { // ... String json = new ObjectMapper().writeValueAsString(user); return new ResponseEntity<>(json, HttpStatus.CREATED); }-
JSON格式不匹配。如果你的客户端请求包含特定的Accept头(例如
application/json; charset=UTF-8),那么服务器端应该能够根据这个接受头来选择正确的编码方式。 -
如果你的客户端使用的是Spring Boot 2.x或更高版本,它可能会自动处理
Content-Type和Accept之间的冲突。你可以尝试使用@CrossOrigin注解或者配置一个跨域策略来解决这个问题。
@RestController @RequestMapping("/api/users") public class UserController { @CrossOrigin(origins = "*") // 这一行可以用于解决跨域问题 @PostMapping() public ResponseEntity<User> createUser(@RequestBody User user) { // ... return new ResponseEntity<>(user, HttpStatus.CREATED); } }以上就是一些可能导致这个问题的原因及解决方案。希望这些建议对你有所帮助!
解决 无用评论 打赏 举报