Java Spring-从Ajax Post到Controller出现415错误

时间:2019-01-29 03:48:15

标签: java spring

我有一个JSP页面,该页面将ajax发布到Java spring控制器。但是,每当发布该帖子时,都会出现415不支持的媒体类型错误。由于我是Spring MVC的新手,因此不确定该错误是由于响应类型还是请求类型引起的。我的ajax看起来像:

$.ajax({
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            type: "POST",
            url: "validateRedirect",
            context:document.body,
            contentType:"application/json",
            data:JSON.stringify(validateObject),
            dataType:"json"
        });

我的请求映射如下:

@RequestMapping(value = "/validateRedirect", method = {RequestMethod.POST}, headers="Content-Type=application/json")
public ResponseEntity<String> callToValidate(HttpServletRequest servletRequest, HttpServletResponse servletResponse, @RequestBody ValidateObj validateObject) 

即使我尝试从Postman发表帖子,也会遇到相同的错误,因此我认为这与我的回复有关

2 个答案:

答案 0 :(得分:1)

尝试将您的控制器修改为

@PostMapping(value = "/validateRedirect")
public ResponseEntity<ValidateObj> callToValidate(@RequestBody ValidateObj validateObject)

答案 1 :(得分:0)

尝试一下:

@RestController
public TestController{
    @PostMapping("/validateRedirect")
    public ResponseEntity<ValidateObj> callToValidate(@RequestBody ValidateObj validateObject){
        //...your logic
        return new ResponseEntity<ValidateObj>();
    }
}

如果您使用spring的默认设置,则应将application/json作为默认接受和内容类型。因此,您不必在批注中指定。