У меня приложение весенней загрузки (2.3.0.M2
), работающее на aws. При доступе к нему из локального приложения реакции, работающего на localhost:3000
, я получил следующую ошибку:
Access to XMLRequest at aws-url from origin localhost:3000 has been blocked by CORS policy: Response to preflight request doesn't pass access control check: `Access-Control-Allow-Origin` header is present on the request resource.
Я попытался решить ее, добавив политику CORS в приложение весенней загрузки, добавив WebConfig
как показано ниже:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
А теперь получаем Using 'application/json', given [*/*] and supported [application/json] after cors policy updated
. Using 'application/vnd.spring-boot.actuator.v3+json', given [*/*] and supported [application/vnd.spring-boot.actuator.v3+json, application/vnd.spring-boot.actuator.v2+json]
.
Я также попытался специально определить основные политики для типа контента (как application / json). И попытался удалить produces=content-type
из контроллера, что не очень хорошая идея, но это не работает.
Он идет к контроллеру и завершается неудачно в операторе return. Вот как выглядит контроллер:
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
@RestController
public class SomeController {
@ResponseStatus(HttpStatus.OK)
@GetMapping(value = "/{id}", produces = APPLICATION_JSON_VALUE)
public Object get(@PathVariable("id") Long id) {
return service.get(id);
}
}
Чего мне не хватает? спасать капитана?