Вы можете использовать встроенные параметры прокси, предоставляемые сервером Angular dev. Для получения дополнительной информации см. официальную документацию .
Создайте proxy.config. json в папке sr c и добавьте следующее содержимое:
src / proxy.config. json
{
"/api": {
"target": "http://localhost:8080",
"secure": false,
"changeOrigin": true
}
}
Затем в файле AuthenticationService измените свой HTTP-вызов, как показано ниже:
this.http.get<any>('/api/v1/basicauth', { params }).subscribe();
Теперь запустите приложение Angular с следующие флаги:
ng serve --proxy-config src/proxy.config.json
АЛЬТЕРНАТИВНЫЙ ПОДХОД
angular. json
...
"architect": {
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "your-application-name:build",
"proxyConfig": "src/proxy.config.json"
},
...
Теперь вы может, как обычно, с помощью команды ng serve
без флага --proxy-config.
Примечание
Теперь вы можете вызывать любую конечную точку, доступную ваш сервер localhost: 8080 без имени хоста, как показано выше, и он будет работать. Но учтите, что это будет работать только в настройке / рабочем процессе Dev.
В более высоких средах, таких как Production, ваше приложение Angular должно размещаться в том же домене, что и серверная часть. сервер, чтобы избежать ошибок CORS. Но обратите внимание, что это не единственная доступная опция для преодоления ошибки CORS.
Как видно из фрагмента кода, вам не нужно добавлять '?' в конце URL, поскольку он автоматически генерируется HttpClient, если вы устанавливаете объект params.
Надеюсь, это поможет ... Ура и удачного кодирования !!!