Я бы использовал HttpInterceptor
здесь, чтобы избежать получения субдомена для всех http-запросов.HttpInterceptor отлично!: D
Итак, что вы можете сделать, создайте перехватчик, как говорится в вашем вопросе, вы устанавливаете поддомен перед выполнением любого http-запроса, так что, предположительно, при выполнении запроса http всегда существует поддомен.
Также я вижу, что вы устанавливаете заголовки.Если заголовки одинаковы для всех, вы также можете сделать это в перехватчике.Я не включаю его здесь, хотя.
Так вот как может выглядеть ваш перехватчик:
@Injectable()
export class NoopInterceptor implements HttpInterceptor {
constructor(private storage: Storage) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const obs = Observable.fromPromise(this.storage.get('subdomain'));
return obs.flatMap(data => {
console.log(data); // here should be your subdomain
// add your subdomain, and the rest of the url
const apiReq = req.clone({ url: `${data}${req.url}` });
return next.handle(apiReq);
})
}
}
Это означает, что в вашем запросе игнорируйте поддомен и просто добавьтечасть последнего URL, так как мы добавляем поддомен в перехватчик:
return this.http.post(this.apiUrl, entry, { headers: HEADER.headers}
Вот фиктивный пример, где я просто устанавливаю данные в хранилище перехватчика, вы бы сделали это там, где вы находитесьв настоящее время делает.
Обратите внимание, вам не нужно систематизировать полезную нагрузку.