jinxZz0 2015-10-16 12:53 采纳率: 0%
浏览 1662

4.1springmvc返回json问题

用的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
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能是由以下原因引起的:

    1. 你的JSON数据在服务器端没有正确编码。你可能需要检查你的控制器方法是否正确地将响应对象转换为JSON。
    public ResponseEntity<String> saveUser(User user) {
        // ...
        String json = new ObjectMapper().writeValueAsString(user);
        return new ResponseEntity<>(json, HttpStatus.CREATED);
    }
    
    1. JSON格式不匹配。如果你的客户端请求包含特定的Accept头(例如application/json; charset=UTF-8),那么服务器端应该能够根据这个接受头来选择正确的编码方式。

    2. 如果你的客户端使用的是Spring Boot 2.x或更高版本,它可能会自动处理Content-TypeAccept之间的冲突。你可以尝试使用@CrossOrigin注解或者配置一个跨域策略来解决这个问题。

    @RestController
    @RequestMapping("/api/users")
    public class UserController {
    
        @CrossOrigin(origins = "*") // 这一行可以用于解决跨域问题
        @PostMapping()
        public ResponseEntity<User> createUser(@RequestBody User user) {
            // ...
            return new ResponseEntity<>(user, HttpStatus.CREATED);
        }
    }
    

    以上就是一些可能导致这个问题的原因及解决方案。希望这些建议对你有所帮助!

    评论

报告相同问题?