当前位置: 首页 > 知识库问答 >
问题:

我得到的是“Http失败响应(未知url):0未知错误”,而不是文件中的实际错误消息

曹成双
2023-03-14

我正在使用Angular 4HttpClient向外部服务发送请求。这是一个非常标准的设置:

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

问题是,当请求失败时,我会在控制台中看到(未知url):0未知错误的通用Http失败响应。同时,当我在chrome中检查失败的请求时,我可以看到响应状态是422,在“预览”选项卡中,我可以看到描述失败原因的实际消息。

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


共有3个答案

夏侯兴怀
2023-03-14

在chrome中关闭ads块扩展后,这个错误有时会出现,因为浏览器中有阻止http的东西

郭兴文
2023-03-14

以防其他人和我一样迷路。。。我的问题不是由于CORS(我完全控制服务器,CORS配置正确!)。

我的问题是因为我使用的是Android平台级别28,默认情况下禁用明文网络通信,并且我试图开发指向笔记本电脑IP(运行API服务器)的应用程序。API基本URL类似于http://[LAPTOP\u IP]:8081。由于它不是https,android webview完全阻止了手机/模拟器和我笔记本电脑上的服务器之间的网络传输。要解决此问题,请执行以下操作:

项目中的新文件:资源/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>

注意:这应该小心使用,因为它将允许应用程序中的所有明文(不强制使用https)。如果你愿意,你可以进一步限制它。

<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>

就这样!从那里我重建了APK,应用程序现在可以从模拟器和手机进行通信。

有关网络安全的更多信息:https://developer.android.com/training/articles/security-config.html#CleartextTrafficPermitted

佴保臣
2023-03-14

这个问题与CORS有关。我注意到Chrome控制台中还有一个错误:

请求的资源上没有访问-控制-允许-起源标头。因此,不允许访问起源http://localhost:4200。响应具有HTTP状态代码422。'

这意味着来自后端服务器的响应丢失了Access-Control-允许-起源标头,即使后端nginx配置为将这些标头添加到具有add_header指令的响应中。

但是,此指令仅在响应代码为20X或30X时添加标题。在错误响应中,缺少标题。我需要使用始终参数来确保添加标题,而不管响应代码是什么:

add_header访问控制允许起源http://localhost:4200

一旦后端配置正确,我就可以访问角度代码中的实际错误消息。

 类似资料:
  • 我是个新手 选项http://localhost:64458/api/employee/insert404(未找到) CORS策略阻止从http://localhost:64458/api/employee/inserthttp://localhost:4200访问XMLHttpRequest:对预飞行请求的响应不通过权限改造检查:它没有HTTP ok状态。 core.js:15724错误 这是我

  • 我的API远程托管,没有使用ssl证书! 我搜索了所有的解决方案,但没有一个解决我的问题

  • 我最近将一系列Maven项目(Ardor3D,如果有帮助的话)导入到Eclipse中,出于某种原因,除了第一个项目之外,在所有项目中,pom旁边都有一个红色的x标记。但是,当我打开pom时,PackageExplorer窗口中的xml文件表明存在错误。xml,我找不到任何错误。。。谢谢你的帮助!

  • 当我试着运行一个特定的应用程序时,Gradle没有编译并显示这个奇怪的错误。我在文件中搜索了标签,但这样的标签不存在。应用程序的确切状态 错误:未知标记 然而,我之前构建的其他应用程序并非如此,它们运行平稳,没有任何错误。请告诉我有什么补救办法。谢谢大家。 编辑:新项目也面临同样的问题。 编辑2:当我删除实现的com时。Android支持约束:约束布局:构建时为1.1.0'。应用程序的渐变。它显示

  • 我正在尝试在Linux 3.10.0-327.36.3中启动chrome驱动程序。el7在python中使用selenium。从chrome文档中也得到了一些有用的帮助,我的提取代码片段是 但我得到下面的错误信息, 消息:未知错误:Chrome无法启动:异常退出(驱动程序信息:chromedriver=2.29.461571(8A88BBE075E2A23AFDA0CEAF2EF7EE74E822

  • 为什么程序不起作用?当我在第一个问题上输入'1',然后在第二个问题上输入一些东西时,出现了一个红色文本:(程序没有完成,但它应该能工作,不是吗?) 线程“main”Java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0在Java.lang.String.Charat(String.Java:658)在javaApplication2.javaAp