簡體   English   中英

POST http 調用在 Ionic iOS 版本中不起作用

[英]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",
   ...
}

我如何構建是

  1. ionic build --prod --release
  2. ionic cordova platform remove ios (如果平台已經存在)。
  3. ionic cordova platform add ios
  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM