Android 离子http失败(响应0)
我们正在构建一个需要API请求的应用程序。 在前端,我们使用带角度的离子。当我们试图发送一个请求到后端时,我们得到了这个错误 当我们在浏览器的桌面上进行尝试时,它会起作用。Android 离子http失败(响应0),android,node.js,angular,api,ionic-framework,Android,Node.js,Angular,Api,Ionic Framework,我们正在构建一个需要API请求的应用程序。 在前端,我们使用带角度的离子。当我们试图发送一个请求到后端时,我们得到了这个错误 当我们在浏览器的桌面上进行尝试时,它会起作用。 { "headers":{ "normalizedNames":{ }, "lazyUpdate":null, "headers":{ } }, "status":0, "statusText":"Unknow
{
"headers":{
"normalizedNames":{
},
"lazyUpdate":null,
"headers":{
}
},
"status":0,
"statusText":"Unknown Error",
"url":"http://server_ip:3000/path/useCode/1234",
"ok":false,
"name":"HttpErrorResponse",
"message":"Http failure response for http://server_ip:3000/path/useCode/1234: 0 Unknown Error",
"error":{
"isTrusted":true
}
}
这就是我们发送请求的方式
import { HttpClient, HttpHeaders } from '@angular/common/http';
public sendCodeGET() {
this.httpClient.get(`http://server_ip:3000/path/useCode/${this.code.trim()}`).subscribe(
res => {
this.response = JSON.stringify(res);
},
err => {
this.response = JSON.stringify(err);
this.presentToast(err.error['message']);
}
);
}
我们正在使用nodejsv10.15.3,其中我们设置了如下所示的CORS头
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept, Authorization");
res.setHeader("Access-Control-Allow-Methods","GET, POST, OPTIONS, DELETE");
res.setHeader("Access-Control-Expose-Headers","Content-Length,Content-Range");
if (req.method === 'OPTIONS') {
res.setHeader('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE, GET');
return res.status(200).json({});
}
next();
});
config.cml
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
)
-发布和获取请求我建议尝试一些事情
下载一个CORS插件,该插件允许您绕过阻止的标题
如果你使用的是爱奥尼亚,我假设这是一款混合应用。利用离子HTTP。您可以获得更好的结果。
查看爱奥尼亚的官方文档以获得帮助
我面临同样的问题,但我将其分类如下。遵循以下步骤
打开[yourProject]/android/app/src/main/AndroidManifest.xml
2.在那里添加此行android:usesCleartextTraffic=“true”
3.将此行添加到config.xml
文件
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:usesCleartextTraffic="true" />
</edit-config>
在AndroidManifest.xml中检查您的权限<代码>
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:usesCleartextTraffic="true" />
</edit-config>