#angular #http #interceptor
Вопрос:
Привет, я новичок в перехватчиках, и я хотел перенаправить НЕКОТОРЫЕ запросы на другой домен более или менее, потому что доступ к порту другой. Но я не могу заставить перехватчик работать, вот мой код для перехватчика :
@Injectable()
export class CustomHttpInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log("initial request: ", req)
const url = '10.0.0.211:8080/Vanta/exports/';
req = req.clone({
url: url req.url
});
console.log("Dupe Req: ", req.url)
return next.handle(req);
}
теперь URL-адрес const здесь статичен для случая использования, но изначально он будет выводиться из адресной строки,
вот результат этого: таким образом, у Dupe Req есть правильный URL-адрес, но в команде get localhost (или каков бы ни был исходный URL-адрес, т. Е.: если он начинается с 10.0.0.211, он становится http://10.0.0.211/10.0.0.211:8080/Vanta/exports/chemistry-800133-2021-09-22-08-43-56.csv»,
почему URL-адрес не переопределяется тем, что, как я думал, было бы http://10.0.0.211:8080/Vanta/exports/chemistry-800133-2021-09-22-08-43-56.csv
Ответ №1:
HttpRequest
не содержит хоста, если Вы редактируете URL-адрес, хост не изменяется. Ваш первоначальный запрос является http://localhost:4200/chemistry...
, и вы изменяете только url
часть запроса.
Комментарии:
1. Каков был бы правильный способ редактирования хоста? в конце концов, все, что я хочу сделать, это изменить/добавить порт на хост до’/’, чтобы это было (используя URL, а не локальный хост) « 10.0.0.211 **:8080**/vanta/exp…
2. Как Вы выполняете http-вызов ? У вас есть настроенный прокси-сервер ?
3. Эм, я не: это.http.get(имя файла,{ Тип ответа: ‘большой двоичный объект’}).подписка …. я думал, что это будет простая загрузка файла с другого порта
4. Также могу я добавить, что URL-адрес перед номером порта является динамическим…
5. Самым простым способом достижения Вашей цели будет создание нового HttpRequest вместо его клонирования
const httpRequest = new HttpRequest(req.method, 'http://10.0.0.211:8080/Vanta/exports/chemistry-800133-2021-09-22-08-43-56.csv');