问题及答案(POST application / json)。 400错误的要求

时间:2019-02-01 14:53:18

标签: java spring spring-boot post cors

我有代码:

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。

1 个答案:

答案 0 :(得分:0)

这里的例外情况是data: JSON.stringify(this.state)必须为body: JSON.stringify(this.state) 因为我使用reactJS,所以我必须在ajax请求中写body而不是data Ty