首页 > 其他分享 >Http failure response 0 Unknown error 错误分析

Http failure response 0 Unknown error 错误分析

时间:2022-11-05 22:36:04浏览次数:74  
标签:Origin 标头 Http 错误 failure Unknown 响应 response

使用下面这段代码在 Angular 应用里进行 HTTP 访问:

this.httpClient.get(url).subscribe(response => {
  //do something with response
}, err => {
  console.log(err.message);
}, () => {
  console.log('completed');
}

问题是,当请求失败时,我在控制台中看到 (unknown url): 0 Unknown Error 消息的通用 Http 失败响应。 同时,当我在 chrome 中检查失败的请求时,我可以看到响应状态为 422,并且在预览选项卡中,我看到了描述失败原因的实际消息。

如何访问我可以在 chrome 开发工具中看到的实际响应消息?

这是演示问题的屏幕截图:

[图片]

一种可能的原因是请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此,不允许来自 Origin 'http://localhost:4200' 的应用访问该资源。

这意味着来自后端服务器的响应缺少 Access-Control-Allow-Origin 标头,即使后端 nginx 已配置为使用 add_header 指令将这些标头添加到响应中。

但是,此指令仅在响应代码为 20X 或 30X 时添加标头。 在错误响应中,标头丢失。 无论响应代码如何,我都需要使用 always 参数来确保添加标头:

add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;

正确配置后端后,我可以访问 Angular 代码中的实际错误消息。

除了 CORS 错误之外,另一种可能的错误:

我的问题是因为我使用的是 Android 平台级别 28,默认情况下禁用明文网络通信,并且我正在尝试开发指向笔记本电脑 IP(运行 API 服务器)的应用程序。 API 基本 URL 类似于 http://[LAPTOP_IP]:8081。 因为它不是 https,所以 android webview 完全阻止了手机/模拟器和我笔记本电脑上的服务器之间的网络传输。 为了解决这个问题,修改下列配置文件:

resources/android/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <!-- Set application-wide security config -->
  <base-config cleartextTrafficPermitted="true"/>
</network-security-config>
<platform name="android">
    ...
    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
        <application android:networkSecurityConfig="@xml/network_security_config" />
    </edit-config>
    <resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
    ....
</platform>

标签:Origin,标头,Http,错误,failure,Unknown,响应,response
From: https://www.cnblogs.com/sap-jerry/p/16861529.html

相关文章

  • http协议中的Accept和Content-type了解
    转自:https://juejin.cn/post/6923062226941132814,https://www.cnblogs.com/111testing/p/6037579.html1.介绍 Accept代表发送端(客户端)希望接受的数据类型。比如:Accept:t......
  • HTTP/2 简介
    1.二进制分帧层HTTP/2新增了二进制分帧层,在不修改HTTP/1.x的语义(包括各种动词,方法,首部都不受影响)的前提下,将编码方式改变了Connection连接:一个TCP......
  • HttpsUtil
    packagecom.raiyi.flowcenter.utils.http;importjava.io.BufferedReader;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStrea......
  • Nginx配置ssl实现https访问
    导航​​一、申请SSL证书​​​​1.1阿里云服务器首页​​​​1.2SSL证书页面​​​​1.3SSL证书购买详情页​​​​1.4SSL证书申请​​​​1.5SSL证书DNS解析​​​​......
  • C# HttpClient请求gzip
    //设置HttpClientHandler的AutomaticDecompressionvarhandler=newHttpClientHandler(){AutomaticDecompression=DecompressionMethods.GZip};//创建HttpClient(......
  • C++调用HTTP(HttpSendRequest)如何设置延时
    1、解决办法:DWORDdwTimeout=3000;//3s bRet=InternetSetOption(hRequest,INTERNET_OPTION_CONNECT_TIMEOUT,&dwTimeout,sizeof(dwTimeout)); if(!bRet){......
  • 本地为内网无公网IP如何使用HTTP代理授权
    很多朋友在使用HTTP代理进行授权时,发现自己本地运营商根本没有分配公网IP,全部都是内网,无法进行IP白名单绑定授权,遇到这种情况,我们应该怎么办呢?要知道,绑定白名单,给......
  • 为什么说高匿的HTTP代理是爬虫过程中必须的
    不少人在选择代理套餐的时候,追求低成本,选择的HTTP代理套餐也是五花八门,但唯一的要求就是要便宜,能有多便宜就要有多便宜,以致于直接选择一般的透明代理也在所不惜。透明......
  • Web基础与HTTP协议
    Web基础与HTTP协议一,DNS与域名1.DNS解析DNS解析方式,三种:①/etc/hosts linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,使用......
  • Spring Boot 运行原理 - 实例分析(HttpEncodingAutoConfiguration)
    在了解了SpringBoot的运作原理和主要注解后,现在来简单的分析一个SpringBoot内置的自动配置功能:http的编码配置。我们在常规项目中配置Http编码的时候是在web.xml添加一......