请求被Angular前端和Java Spring Boot后端的CORS策略阻止


updateStudent(userName: string, age: number): Observable<any> {
debugger;
let formData = new FormData();
let reqJson: any = {};
reqJson["userName"] = userName;
reqJson["age"] = age;
formData.append('info', JSON.stringify(reqJson));
return this.httpClient.post(this.url + '/update-student', formData);
}

我在我的Java Spring Boot后端有这样的注释:

@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/api")
public class HomeController {

这是我得到的一个错误:Access to XMLHttpRequest at 'http://localhost:8080/api/update-student' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

您可以使用以下代码:

@Configuration
@EnableWebMvc
public class CourseConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("POST", "GET", "OPTIONS", "PUT", "DELETE")
.maxAge(3600);
}
}

最新更新