(未知 url)的 Http 失败响应:android 上的 0 未知错误

Posted

技术标签:

【中文标题】(未知 url)的 Http 失败响应:android 上的 0 未知错误【英文标题】:Http failure response for (unknown url): 0 Unknown Error on android 【发布时间】:2019-01-29 23:44:27 【问题描述】:

我有一个离子应用程序,当我在 ios 上运行它时,它运行得非常好,但是当我在 android 上运行它时,我得到了这个错误

Http failure response for (unknown url): 0 Unknown Error

我买这个有什么原因吗?我已在服务器端允许 CORS,因为它在 iOS 设备上运行。

有什么帮助吗?

编辑

这就是我的 app.js 文件中的内容

const cors = require('cors');

然后我只是将它与默认选项一起使用。

app.use(cors());

【问题讨论】:

不,它不是来自 android,而是来自 iOS。 @KirkLarkin 你能在其他地方提出成功的请求吗??? 它正在尝试访问该服务器“httpbin.org”。 我怎么能说当我登录时我必须发送带有 url 的凭据。当我这样做时,使用该 url 显然它会失败,因为它不接受凭据属性。 你的云api可以直接从浏览器访问吗? 【参考方案1】:

如果您使用的是localhost,请将其更改为本地主机的 IP 地址。 Android 似乎不支持 iOS 支持它。

尝试实际的主机名,以防它也不起作用。

【讨论】:

当我尝试与非本地云进行交互时会发生这种情况。【参考方案2】:

首先,您不需要 CORS 从您的 android 设备调用 API。

其次,您的服务器可能不接受您的请求。如果您使用云,那么您的服务器必须接受来自任何 IP 的请求。必须有一个允许 IP 地址的选项,将其放置在 0.0.0.1 到 254.254.254.254 之间,以便每个用户都可以调用您的 API。

第三,您需要允许来自您的 config.xml 以及 CROS 请求的标头。检查您的 API 标头和config 文件。

第四,如果您的服务在 http 下运行,那么它也可能是问题所在。通过添加 SSL 证书来保护您的服务。这可以解决您的问题。

【讨论】:

感谢您的回答,首先我使用的是 AWS,它以我设置的方式接受来自几乎所有 IP 的请求。我检查了 config.xml 文件,我在该文件 <access origin="*" /> 中看到了这一点。我认为这意味着它允许一切。 我认为您的服务是在 http 而不是 https 下运行。这也可能是因为您的服务不受 SSL 保护。如果您的服务没有 SSL 证书,请在您的服务中添加 SSL 证书。我也在更新我的答案。 如果您使用的是NativeHttp,则可以选择不检查 SSL 证书。在调用您的 http 请求之前尝试this.http.setSSLCertMode('nocheck'); 此代码。但仅用于测试目的,最好不要用于生产。 我目前还没有使用 SSL。我正在使用来自@angular/common/httpHttpClient。我不确定NativeHttp【参考方案3】:

我们在我们的应用程序中多次遇到相同的错误。在我们的例子中,这是请求标头的问题,也是服务器端的 CORS 问题。

如果您模拟安卓设备,您能否在浏览器中重现此错误?然后您可以将它们与 iOS 请求的标头进行比较。

或者您可以尝试在服务器端记录传入的请求,以查看请求是否到达服务器以及设置了哪些标头。

希望我的想法有所帮助:)

【讨论】:

【参考方案4】:

解决方案是在您的环境中添加 NODE_TLS_REJECT_UNAUTHORIZED=0 以禁用 Node.js 中的 SSL 验证。

Note :你应该只在开发中设置这个,不要在生产中这样做

EDIT

在这种情况下,它表明 CORS 尚未在您的服务器上正确设置。解决问题here

【讨论】:

谢谢,但我在哪里可以找到该属性? 顺便说一句,当我尝试与真正的生产服务器的远程 url 交互时会发生这种情况。有什么想法吗? 其实只是尝试过,但我仍然得到同样的错误。我在 nodejs 的 app.js 文件中添加了process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 不过我使用了cor npm 模块。 是的,您已经提到过,但我发现那里有问题。检查是否已正确配置

以上是关于(未知 url)的 Http 失败响应:android 上的 0 未知错误的主要内容,如果未能解决你的问题,请参考以下文章

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

devextreme-datagrid update:message:“(未知URL)的Http失败响应:0未知错误”

http url 的 Http 失败响应:401 Unauthorized

处理响应创建excel文件时解析URL时出现错误HTTP失败

如何从 https 网站获取 http 内容?

apache http客户端org.apache.http.NoHttpResponseException:目标服务器响应失败