我有一个离子4应用程序调用.NET核心后端API。它可以在Chrome浏览器上正常工作,但当我在Android设备上运行APK时,响应是:
{"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"Unknown Error","url":null,"ok":false,"name":"HttpErrorResponse","message":"Http failure response for (unknown url): 0 Unknown Error","error":{"isTrusted":true}}
关于标题I,附加以下选项:
const httpOptions = {
headers: new HttpHeaders({
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8" ,
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Origin, Content-Type, X-Auth-Token, Accept, Authorization, X-Request-With",
"Access-Control-Allow-Credentials" : "true",
"Access-Control-Allow-Methods" : "GET, POST, DELETE, PUT, OPTIONS, TRACE, PATCH, CONNECT"
})
};
我已经安装了插件: cordova -插件-离子-网络视图
并使用“@angular/common/http”中的HttpClient
远程托管我的API,未使用ssl证书!
我在谷歌上搜索了所有的解决方案,但没有一个能解决我的问题
8条答案
按热度按时间6ioyuze21#
我也面临同样的问题,我的条件如下:
我尝试了很多方法来解决这个问题。我确信这不是一个CORs的问题,因为我已经处理好了。
那么你怎么能修正这样的问题呢?你只需要加一行,比如。
在此标签中:
在你的清单文件中,
你就可以走了。
to94eoyn2#
我建议你检查一下:
1)在服务器端启用CORS
2)如果您的API不是https,请确保android webview没有阻止流量。强制启用
cleartextTraffic
(默认情况下禁用)。在应用中添加安全配置,如下所示。安装参考here5cnsuln73#
经过两天的努力,我终于解决了这个问题!我将API调用从'@angular/common/http'迁移到原生http '@ionic-native/http/ngx',并使用以下头文件:
对我来说的缺点,从现在开始我必须在一个真实的的设备上测试。
2hh7jdfx4#
ifsvaxew5#
我遇到了这个问题,我在API中添加了cors条件并更改了WebViewer版本,但错误仍然存在。您可以通过修改运行API的服务器的ip来解决这个问题。
/resources/android/xml/network_security_config.xml
xbp102n06#
localhost不支持任何android应用。如果您尝试使用localhost访问API,android会考虑localhost0.0.0.0:
yqkkidmi7#
我也面临同样的问题,我的条件如下:
我的Ionic 6和Capacitor应用程序在Chrome上运行良好,但当我在模拟器上运行时,它给了我"未知错误"的问题。
我的后台是AWS。
我在Mac上使用Android Studio和Visual Studio代码。我试图调用服务器上的API。我尝试了许多方法来解决这个问题。我确信这不是一个CORS问题,因为我已经解决了它。
那么你怎么能修正这样的问题呢?你只需要加一行,比如。
在此标签中:
enter image description here,即,
如果你正在使用ionic和cordova,最好在side config.xml中添加usecleartraffic,如果你正在使用cordova,下面是一个工作应用程序的示例。
你就可以走了。
oalqel3c8#
以下更改是我将API端点从http://localhost:7071/data更改为http://192.168.1.11:7071/data的最终工作,其中192.168.1.11是主机的本地IP地址。