(未知 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/http
的HttpClient
。我不确定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失败
apache http客户端org.apache.http.NoHttpResponseException:目标服务器响应失败