Ошибка CORS при подключении Angular к Spring (localhost 8080 <-> localhost 4200) - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь подключить свой внешний интерфейс в Angular 8 к моему внутреннему интерфейсу, написанному в Java, используя Spring.

Мой внутренний бэкэнд Spring работает на сервере Tomcat по адресу localhost: 8080 и Angular открыто на локальном хосте: 4200. Когда я пытаюсь зарегистрировать пользователя (или сделать что-нибудь), я получаю эту ошибку:

Доступ к XMLHttpRequest в 'http://localhost: 8080 / Revvit / users ' от источника 'http://localhost: 4200 ' было заблокировано политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

В моем классе UserController в Spring я пометил контроллер с помощью

@CrossOrigin(origins= "*", allowedHeaders="*")
@Controller
public class UserController {............

Тем не менее, я все еще получаю то же сообщение в моей консоли, как указано выше.

Итак, я предполагаю, что мне нужно добавить некоторый заголовок, разрешающий CORS, в мой проект Angular, но ГДЕ и КАК мне это включить?

1 Ответ

0 голосов
/ 22 января 2020

Вы можете решить эту проблему, добавив файл proxy.conf в свой проект, как в Angular docs: https://angular.io/guide/build#proxying -to-a-backend-server

с прокси. В файле conf вы можете задать для заданных c конечных точек, которые вы используете в своем приложении, другую цель, например:

{
  "/Revvit": {
    "target": "http://localhost:8080",
    "secure": false
  }
}

, затем вы можете получить с помощью службы HttpClient:

this.http.get('Revvit/users')

и получите ожидаемое поведение

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