Ошибка CORS при попытке отправить данные из проекта angular в проект веб-службы Spring - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть Angular интерфейс, где я хочу POST и получать данные из моего веб-сервиса Spring. Когда я пытаюсь отправить POST-данные в сервис, я получаю следующую ошибку: CORS ERROR

Код, который я использую для отправки POST-данных из Angular:

  this.http.post(environment.LOGIN_URL, value)
      .map((response: Response) => {
         console.log('TEST');
         //response.json();
      })
      .subscribe();

При использовании GET я использую this.http.get (environment.LOGIN_URL) et c .. et c .. И это работает как ожидалось

В моем сервисе Spring я использую следующее код метода:

@CrossOrigin(origins = "*")
@RequestMapping(value = "/message", method = RequestMethod.GET)
public String index() {
    return "{ \"key\": \"value\", \"foo\": \"bar\", \"aa\": \"bb\" }"; // return test Json data
}

@CrossOrigin(origins = "*")
@RequestMapping(value = "/message2", method = RequestMethod.POST)
public void index(@RequestBody Map<String, Object> payload) {
    System.out.println(payload);
}

}

Я застрял на этом некоторое время, и ответы, которые я нашел в inte rnet, похоже, не работают со мной. Если я забыл некоторую информацию, дайте мне знать!

1 Ответ

0 голосов
/ 12 апреля 2020

Без возможности поддержать проект и проверить его, это немного сложно. Однако у вас есть настройка WebMVCConfigurer?

@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
           registry.addMapping("/auth/message").allowedOrigins("*");
        }
    };
}

Кроме того, я предполагаю, что ваш контроллер определил / auth как часть URI?

Попробуйте добавить компонент WebMvcConfigurer и сопоставить на правильные конечные точки.

То, что вы здесь предоставили, похоже, должно работать, однако нет никаких проблем с настройкой уровня контроллера и уровня метода @CrossOrigin конфигурации. Я бы попробовал оба способа попытаться сузить проблему. Попробуйте добавить @CrossOrigin на уровне класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...