Как получить статус ответа 403 вместо 0 в Angular 7+ - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу показать всплывающее окно с URL, когда, например, брандмауэр блокирует любой из них из моего бэкэнда. Я должен получить 403 ответа о статусе, но я все время получаю статус 0.

Я вижу похожую тему здесь, но я не знаю, стоит ли мне ее использовать:

Угловой http, возвращающий статус0, но я ожидаю, что 404

хорошо ли это решение? Если да, то как и где мне его использовать?

В моем сервисе должна быть только error.status == 403, но я не могу понять, как получить реальный статус, а не 0.

Я не думаю, что CORS является проблемой, потому что если брандмауэр блокирует мой запрос, то он никогда не попадет на сервер. Я прав?

this.httpClient.request(request).toPromise()
                .then(
                    (res: any) => { // Success
                        resolve(res.body);
                    },
                    (error: any) => { // Error
                        if (error.status == 403){
                            this.respondedWithError$.emit(error.url);
                        }
                        if (error.status == 0){
                            this.respondedWithError$.emit(error.error.currentTarget.__zone_symbol__xhrURL);
                        }
                        reject(error.error);
                    }
                );

Текущий результат:

message: "Http failure response for (unknown url): 0 Unknown Error"
name: "HttpErrorResponse"
status: 0
statusText: "Unknown Error"

Ожидаемый результат:

status: 403
...