Из документов
Разработчики Angular могут столкнуться с ошибкой совместного использования ресурсов между источниками при выполнении запроса на обслуживание (обычно запрос на обслуживание данных) длясервер, отличный от собственного хост-сервера приложения.Браузеры запрещают такие запросы, если сервер не разрешает их явно.
Клиентское приложение не может ничего сделать с этими ошибками.Сервер должен быть настроен на прием запросов приложения.Подробнее о том, как включить CORS для определенных серверов, см. enable-cors.org
Чтобы включить CORS в Spring, вы можете обратиться к CORS с пружиной
Альтернативный подход
Настройка прокси на бэкэнд
Настройка прокси для вызовов API для вашего приложения Angular CLI
"/api/*": {
"target": "https://localhost:8000",
"secure": false,
"logLevel": "debug",
"pathRewrite": {
"^/api": ""
},
"changeOrigin": true
}
"api/*"
:
Все запросы на /api/
изнутри вашегоприложение будет перенаправлено на target": "https://localhost:8000/api
"secure": false,
:
Внутренний сервер, работающий по протоколу HTTPS с недействительным сертификатом, по умолчанию не будет принят.Если вы хотите, вам нужно установить secure: false
.
"logLevel": "debug"
Чтобы отладить, работает ли ваш прокси должным образом, вы также можете добавитьОпция logLevel выглядит следующим образом: Возможные опции для logLevel включают debug
, info
, warn
, error
и silent
(по умолчанию - информация).
"pathRewrite": {
"^/api": "" },
Параметр pathRewrite говорит, что если путь соответствует ^/api
(то есть если он начинается с / api), то переписать эту часть пустой строкой (т.е. удалить ее из пути), поэтому весь запрос к https://localhost:8000/api
перейдет кhttps://localhost:8000
"changeOrigin": true
: если вам нужен доступ к бэкенду, который не находится на локальном хосте, или когда вы используете некоторые виртуальные прокси (например, настроенные с Apache2) на вашем бэкэндеустановите его в true.
- `target:
proxy options
, предоставляемый в этом пакете, из базового node-http-proxy
Поддержка прокси может помочь вам избавиться от некоторых CORS
исключений на этапе разработкино клиентское приложение мало что может сделать с этими исключениями. Сервер должен быть настроен на прием запросов приложения.
I want to add CORS support to my server
ПРИМЕЧАНИЕ :
Конфигурация proxy
предназначена для прокси-вызовов при запуске сервера dev через ng serve
.После запуска ng build
вы отвечаете за веб-сервер и его настройки.