我已经在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>
在网络浏览器和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
然后,我将相同的ios
文件夹打开到Xcode中,选择开发人员帐户,连接我的iPad并运行它。
答案 0 :(得分:0)
您能够解决它吗? 我遇到了类似的情况,这就是我如何解决的。 在电容器.config.json文件中,我们需要从获取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"]
},
希望这会有所帮助。