我有代码:
1)ajax
addFarmByPost = (e) => {
e.preventDefault();
alert(JSON.stringify(this.state));
fetch("http://localhost:8080/farms", {
method: "POST",
headers: {
'Content-Type': 'application/json'
},
data: JSON.stringify(this.state)
})
}
2)休息控制器
@PostMapping("/farms")
public ResponseEntity<Object> addFarm(@RequestBody String farmParam) {...//do }
3)Spring Boot应用程序中的Clocor Cors配置:
**@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter(){
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedMethods("POST", "GET", "PUT", "DELETE", "OPTIONS")
.allowedOrigins("*")
.allowedHeaders("*")
.allowCredentials(false)
.maxAge(6000);
}
};
}**
但是当我发出Ajax POST请求(应用程序/ json)时,我遇到了 400错误的请求。例外:处理程序执行:org.springframework.http.converter.HttpMessageNotReadableException:缺少所需的请求正文。
获取CORS方法效果很好。我如何解决它以及 了解错误原因。Ty。
答案 0 :(得分:0)
这里的例外情况是data: JSON.stringify(this.state)
必须为body: JSON.stringify(this.state)
因为我使用reactJS,所以我必须在ajax请求中写body
而不是data
Ty