簡體   English   中英

$ http在Ionic / AngularJS應用中的iOS 8.2中不起作用

[英]$http not working in iOS 8.2 in Ionic / AngularJS app

以下代碼在適用於iOS 9.3 ++版的Ionic應用程序中有效,但不適用於iOS 8.2:

  $http({
      method: 'POST',
      url: 'https://example.com',
      data: {username: username, password: password }
  }).then(function(result) {
     //I wish!
  },function(error) {
    //unfortunately we end up here for iOS 8.2, but not for 9.3 or greater
  });

我已經驗證了兩個版本都將POST數據發送到服務器,並且服務器生成了正確的響應。

iOS 8.3引發錯誤:

Failed to load resource: The network connection was lost.

我懷疑某種瀏覽器設置/權限/ CORS問題,但尚未在SO或Google上找到解決方案。

我的服務器(PHP)設置為接收如下ajax請求:

if (isset($_SERVER['HTTP_ORIGIN'])) {
   header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
   header('Access-Control-Allow-Credentials: true');
   header('Access-Control-Max-Age: 86400');
}

//Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
   if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) {      
       header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
   }
   if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) {
      header("Access-Control-Allow-Headers:        
      {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
   } 
   exit(0); 
}

//processing code goes here and a proper $response is created
echo json_encode($response);

嘗試在您的http請求中添加此行

標頭:{'Content-Type':'application / x-www-form-urlencoded'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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