【发布时间】:2018-11-26 20:30:25
【问题描述】:
我在我的 RestController 中使用了 @CrossOrigin 注释。我所有的GET 请求都运行良好。但我正在努力处理 PUT 和 DELETE 请求。我收到错误:
HttpErrorResponse {headers: HttpHeaders, status: 405, statusText: "OK", url: "http://localhost:8080/api/delete/1", ok: false, …}
请注意,我没有对 API 使用任何身份验证
我的休息控制器(在类级别上用 @CrossOrigin 注释):
//Rest Controller
@PutMapping(path = "edit/{id}", produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE)
public void editRecipient(@PathVariable("id") Long id,
@RequestBody RecipientEntity recipient){
service.updateRecipient(id, recipient);
}
@DeleteMapping(path = "delete/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public void deleteRecipient(@PathVariable("id") Long id) throws NotFoundException {
service.deleteRecipient(id);
}
这是我的配置文件:
@Configuration
public class WebConfig {
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
【问题讨论】:
标签: java spring-boot cors