我有一个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发表帖子,也会遇到相同的错误,因此我认为这与我的回复有关
答案 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
作为默认接受和内容类型。因此,您不必在批注中指定。