如何在Angular 7+中获取响应状态403而不是0

例如,当防火墙阻止我的任何后端访问时,我想显示带有url的弹出窗口。我应该得到403状态响应,但是我一直都处于状态0。

我在这里看到类似的主题,但我不知道是否应该使用它:

Angular http returning status 0,but I expect 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
zpc1234 回答:如何在Angular 7+中获取响应状态403而不是0

这不是 Angular 的问题,您需要在服务器端进行调查。

如果您查看网络选项卡,您会发现您的请求从未真正发送过,这就是为什么您没有得到您期望的服务器响应。

这是一个 CORS 问题,您需要确保以正确的方式实施 OPTIONS 预检请求,例如以成功代码响应并为您的请求发送正确的标头。

本文链接:https://www.f2er.com/3166618.html

大家都在问