在使用HttpClient的Angular6中,是否仍然存在GET net :: ERR_CONNECTION_REFUSED错误/异常?对于典型的http请求,我通常会看到一个错误/类型为HttpErrorResponse的异常,例如404 Not Found。但是,对于某些不存在端口或远程服务的http请求以及网络问题,我在浏览器控制台中看到2个错误/异常:
a。)GET https://localhost:8443/sb-template/status-routes net :: ERR_CONNECTION_REFUSED {...}
然后是我的代码正在捕获的第二个:
b。)HttpErrorResponse {标题:HttpHeaders,状态:0,statusText:“未知错误”,网址:null,确定:false,…}
因此,我能够轻松捕获/捕获第二个错误HttpErrorResponse中的内容。但是无论如何,有捕获或捕获初始错误的方法吗……
这里的原因是第二个错误(HttpErrorResponse)中的消息,它是非常通用的并且显示很少:(未知url)的Http错误响应:0未知错误...这可能来自许多问题。 / p>
但是,如果我可以捕获/捕获初始错误...特别是net :: ERR_CONNECTION_REFUSED,这将提供有关可能的端口或远程服务关闭的更重要的信息。
答案 0 :(得分:0)
可以使用chrome://network-errors/
检查Chromium网络错误代码列表。控制台日志错误代码详细信息由chrome浏览器发出。您只需要处理HttpErrorResponse并根据状态代码设置错误消息。
状态代码为零可能是由于chrome adblocker或无效的身份验证/ cert详细信息或CORS问题导致的。如果您有权访问服务器api,则为响应标头设置以下属性,即使请求来自不同的来源,该属性也允许服务器接受请求。
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Origin: *
[*]允许从任何地方进行跨源请求。可以将其限制为特定域或请求的来源。 request.getHeader(“ Origin”)
答案 1 :(得分:0)
状态代码0表示尚未发出请求,这通常是CORS OPTIONS调用失败,并且由于这是在javascript域之外处理的,因此详细信息不可用。由于您的错误是GET请求,因此我不确定这是否完全相同,但是对于选项angular没有更多详细信息。