Мы разрабатываем приложение Angular 6 с использованием httpClient и withCredentials: true. Когда мы делаем запрос к другому порту на том же сервере (от порта 8010 до 8011), Firefox пытается сделать предварительный запрос. Но похоже, что наш угловой httpClient пытается обработать этот предполётный ответ. Мы используем код ниже. И мы видим, что поток входит в блок catchError. Почему angular-httpclient prcessing предполётный ответ? Как мы справимся с этим?
request(url: string, method: string, options?: any, xmlOptions?: any,
isFullUrl:boolean = false): Observable<any> {
const fullUrl = (isFullUrl) ? url : `${HttpService.BASE_URL}${url}`;
return this.httpClient.request(method, fullUrl, options).pipe(
map(resp => this.parseXML(resp, xmlOptions)),
catchError(exception => this.processError(exception, xmlOptions))
);
}
private processError(exception, xmlOptions) {
this.notificationService.clear();
this.notificationService.error(HttpService.UNEXPECTED_ERROR_OCCURRED);
if(exception.error) {
let errorObj = this.parseXML(exception.error, xmlOptions);
return throwError(errorObj);
}
else {
return throwError(exception);
}
}
Если мы проверяем исключение, появляется сообщение об ошибке "Http failure response for (unknown url): 0 Unknown Error"
Примечание. Это нормально работает в браузере Chrome.