某些$ http请求无法在iOS模拟器或设备上运行(但对其他所有内容都没有问题)

时间:2018-03-18 22:51:09

标签: javascript angularjs cordova ionic-framework

希望你顺利。

我目前正在尝试调用我们在C#WebAPI上设计的API,它将在设备上成功调用。但是,有时它不会调用iOS平台。这就是我调用API设置的方法:

$scope.RunNews = function() {
    console.log("Testing 123. I don't know!")
    var app_url_news = APP_URL.getUrl() + '/api/news/getallnewsinfo';

    $http.get(app_url_news).success(function(data) {
      console.log("Successful Transfer. Data Below")
      console.log(data);

      angular.forEach(data.data, function(obj) {
        console.log(obj);
        if (obj.videoUrl) {
          if (Validators.isValidYoutubeUrl(obj.videoUrl)) {
            var youtubeVideoId = obj.videoUrl.split('v=')[1].split('&')[0];
            obj.videoUrl = 'http://www.youtube.com/embed/' + youtubeVideoId + '?html5=1&rel=0&hl=en_US&version=3';
          }
          obj.isVideo = true;
        } else {
          obj.imagePath = APP_URL.getUrl() + '/NewsImages/files/' + obj.imagePath;
          obj.isVideo = MediaType.isVideo(obj.imagePath);
        }
      });

      $scope.newsList = data.data;

      $ionicLoading.hide();
  });
}
}

目前,此函数调用离子服务网页浏览模拟器和Android设备...但是,在iOS上,永远不会调用$ http。我注意到这对多个$ http呼叫很明显,但对于其他人来说,它们工作正常。

我在这里问是否有人遇到过这个问题并且有解决方法吗?我相信它可能与权限有关,但我似乎无法在我的项目中找到任何东西。

1 个答案:

答案 0 :(得分:0)

我有类似的问题。 GET请求无法在iOS设备上进行,但在浏览器中工作。我通过安装cordova-plugin-whitelist解决了这个问题。要使用它,您必须具有Cordova 4.0或更高版本。

如果问题仍然存在,您应该为控制台中的任何日志调试应用,并检查请求的响应和请求标头。这些将帮助您确定问题所在。