![](/img/trans.png)
[英]Http calls are not working for ionic 3 IOS app. working fine in Android
[英]POST http calls not working in Ionic iOS build
我在 Ionic V4 中创建了一个应用程序,然后使用cordova
插件(不是电容器)构建了相同的应用程序。 我的应用程序的第一页是登录,我从表单字段获取值并将其发送到登录方法,在那里我对服务器进行POST
调用。
loginUrl = 'http://localhost:3000/login';
errorLog: any;
login(form) {
const user = form.values;
this.httpClient.post(this.loginUrl, user).subscribe( response => {
this.toastController.create({message:'Login Successful', duration: 1000}).then(toast=> toast.present());
}, error => {
this.errorLog = error;
this.toastController.create({message:'Some Error Occured', duration: 1000}).then(toast=> toast.present());
})
}
此外,我正在登录页面打印该错误日志,因为一旦我们进行构建,就很难使用 Android Studio 或Xcode
在设备中进行调试。
所以我正在打印这样的错误日志
<h3>{{errorLog | json}}</h3>
在 Web 浏览器和 android 中运行应用程序的情况下,我不会从POST
调用中收到错误。 当我尝试构建并使用Xcode
并部署到我的 iPad 时,在 iOS 中出现错误。
它在GET HTTP
调用中工作正常,因为之前我已经在相同的情况下测试了GET HTTP
调用,但在POST HTTP
调用中不起作用。
它返回 500 内部服务器错误。 错误对象看起来像
{
"statusText": "OK",
"status": 500,
"url": "http://localhost:3000/login",
"ok": false,
"name": 'HttpErrorResponse',
"message": "Http failure response for http://localhost:3000/login: 500 OK",
...
}
我如何构建是
ionic build --prod --release
ionic cordova platform remove ios
(如果平台已经存在)。ionic cordova platform add ios
ionic cordova prepare ios
然后我在 Xcode 中打开同一个ios
文件夹,选择开发者帐户,连接我的 iPad 并运行它。
你能解决吗? 我遇到了类似的情况,这就是我解决它的方法。 在capacitor.config.json 文件中,我们需要指定'server' 从中获取Api 数据的位置。
"appId": "com.yoursite",
"appName": "Your Site",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"cordova": {},
//This part mentioned below is important.
"server": {
"url": "https://yoursite.com",
"allowNavigation": ["yoursite.com", "*.yoursite.com"]
},
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.