gpt4 book ai didi

node.js - Angular 4 - 检测 http 请求的连接问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:56 24 4
gpt4 key购买 nike

我遇到了一个不知道如何解决的问题。我正在 Angular 4 中开发一个小型网络应用程序。在该应用程序中,我向我在公司网络中托管的 Node.js - Express 中开发的 API 发出 http 请求。

我的问题是,大多数时候这些对 api 的调用都工作得很好。我在我的开发环境、我的家里以及我们的一些客户网络中没有遇到任何问题。但在某些网络中,http请求不执行。

我知道这一点,因为我在 api 中注册了每个调用,在这些情况下,我什至检测不到该调用。在 Chrome 中,我什至收到 404 错误。另外,我在客户的电脑上安装了Postman,仍然没有反应。我认为这是一个干扰 api 调用的网络策略,但我不知道我在寻找什么(代理?)。

你能给我一些提示吗?是否可以在我的代码中检测到这些问题,并在这种情况下向客户显示一条消息?

如果需要,我可以粘贴代码的某些部分。

谢谢!

编辑:我找到了导致问题的原因。我的 api 使用了一个不常见的端口 (3088),并且该端口有时会被客户网络策略阻止。我切换到了 443 端口,现在运行得很好。

最佳答案

因此,假设您使用的是 Angulars HTTP 服务,您有几个选择,因为您可以看到此处的请求返回一个可观察值,然后您可以订阅它并处理错误。

getConfig(): Observable<HttpResponse<any>> {
return this.http.get(this.configUrl);
}

showConfig() {
this.configService.getConfig()
.subscribe(
(data: Config) => this.config = { ...data }, // success path
error => this.error = error // error path
);
}

您也可以像这样重试请求

getConfig() {
return this.http.get<Config>(this.configUrl)
.pipe(
retry(3), // retry a failed request up to 3 times
catchError(this.handleError) // then handle the error
);
}

然后,如果发生错误,您可以弹出一条 toast 消息来告诉用户有关错误的信息,以下是 Angular 文档中的源 Material :https://angular.io/guide/http .

希望这有帮助。

关于node.js - Angular 4 - 检测 http 请求的连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com