Недостаток Ans- https://stackoverflow.com/a/56555192/6582610 заключается в том, что вы должны изменить в каждом файле службы TS и добавить домен в каждый URL, а не создавать перехватчик для этого
Используйте новый перехватчик HttpClient для управленияваш запрос.
Создайте правильный инъекционный файл, который реализует HttpInterceptor:
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class APIInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const apiReq = req.clone({ url: `http://localhost:8080/${req.url}` });
return next.handle(apiReq);
}
}
HttpInterceptor может клонировать запрос и изменять его по вашему желанию, в этом случае я добавил путь localhost в каждый ваш APIURL http://localhost:8080/
.
Предоставьте в AppModule следующие конфигурации:
provide: HTTP_INTERCEPTORS,
useClass: APIInterceptor,
multi: true,
}
]
Теперь все ваши запросы будут начинаться с http://localhost:8080
, вам не нужно переходить на каждый файл иизмените его. Также, если у вас есть несколько доменов, вы можете настроить здесь с условием if-else.