我有一个离子应用程序,当我在iOS上运行该应用程序时,它运行得很好,但是当我在Android上运行该应用程序时,出现此错误
Http failure response for (unknown url): 0 Unknown Error
我为什么要得到这个?我已允许在服务器端使用CORS,因为它在iOS设备上正常工作。
有帮助吗?
编辑
这就是我的app.js文件中的内容
const cors = require('cors');
然后我将其与默认选项一起使用。
app.use(cors());
答案 0 :(得分:2)
如果使用localhost
,请将其更改为localhost的IP地址。 Android
似乎不支持iOS
。
尝试实际的主机名,以防它也无法正常工作。
答案 1 :(得分:1)
首先,您不需要CORS从您的android设备调用API。
第二可能您的服务器不接受您的请求。如果您使用的是Cloud,则您的服务器必须接受来自任何IP的请求。必须有一个允许IP地址的选项,将其放置在0.0.0.1到254.254.254.254之间,以便每个用户都可以调用您的API。
第三,您需要允许来自config.xml
的来源以及CROS请求的标头。检查您的API标头和config
文件。
第四,如果您的服务在http下运行,则也可能是问题所在。通过添加SSL证书来保护您的服务。这可以解决您的问题。
答案 2 :(得分:0)
我们在应用程序中多次遇到相同的错误。在我们的例子中,这是请求标头的问题,也是服务器端的CORS问题。
如果您模拟的是Android设备,是否能够在浏览器中重现此错误?然后,您可以将它们与iOS请求的标头进行比较。
或者您可以尝试在服务器端记录传入的请求,以查看请求是否到达服务器以及设置了哪些标头。
希望我的想法有所帮助:)
答案 3 :(得分:-1)
解决方案是将 NODE_TLS_REJECT_UNAUTHORIZED=0
添加到您的环境中以禁用Node.js中的SSL验证。
Note :
您只应在开发中设置此设置,而不在生产中设置
EDIT
在这种情况下,表明未在您的服务器上正确设置CORS。解决问题 here