Использование 'application / json', задано [* / *] и поддерживается [application / json] - PullRequest
0 голосов
/ 09 апреля 2020

У меня приложение весенней загрузки (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);
  }
}

Чего мне не хватает? спасать капитана?

...