PhoneGap - Angularjs http服务(PHP API调用)不工作

时间:2018-04-16 07:45:12

标签: android angularjs cordova phonegap angularjs-http

我尝试使用 Angularjs http服务来调用我的PHP API。在浏览器中一切正常。但是,当我在我的Android手机上测试它时,它将无法正常工作。

我的问题:

在Android PhoneGap应用程序中,每当我触发 Angularjs http服务时,即使移动设备与Internet连接,它也会始终触发function (error)

我试过看看这个但是他们的解决方案没有工作:

  1. Angular $http.get() does not work in Phonegap DevApp
  2. Cordova 5.3.1 Android app can't access the internet
  3. 我还确保Phonegap config.xml允许Internet权限访问:

    <access allows-arbitrary-loads-in-media="true" allows-arbitrary-loads-in-web-content="true" allows-local-networking="true" origin="*" />
    <allow-intent href="*" />
    <allow-navigation href="*" />
    

    然而它仍然没有工作。

    我的问题:

    1. Angularjs http服务无法在PhoneGap Mobile Application上运行,但只能在Web浏览器上运行吗?
    2. 除了config.xml之外,是否还需要进行其他配置以允许PhoneGap Mobile Application访问互联网?
    3. Angularjs代码:

      $http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
      
      $http({
          method: 'POST',
          data: {
              'email' : $scope.email,
              'password' : $scope.password,
          },
          url: 'https://unsurfaced-cross.000webhostapp.com/PGLogin.php'
       }).then(function (response){
          $scope.users = response.data;
      
          if(response.data[0]=="LOGIN"){
            alert("Successful Login");
            $window.location.href = './homepage.html';
      
          }else{
            alert("Login Failed. Incorrect Email or Password.");
          }
      
       },function (error){
            alert("Please ensure You are connected to Internet.");
       });
      

1 个答案:

答案 0 :(得分:0)

实际上我似乎没有安装whitelist插件,对于我的情况,默认情况下没有安装whitelist插件。

由于我使用的是PhoneGap,而不是使用cordova-plugin-whitelist@latestcordova createcordova plugin add cordova-plugin-whitelist等命令。

我应该使用:phonegap plugin add cordova-plugin-whitelist

安装白名单插件后,一切正常。

所以,

  1. Angularjs http服务可以在PhoneGap Mobile Application上使用。
  2. 除了config.xml之外,我们必须确保安装了所有必需和必需的插件,例如Whitelist插件。