2017-01-12 15 views
1

$http.postを使用してアプリケーションで簡単な認証APIを呼び出しています。ionic:http postリクエストはブラウザでは動作しますが、モバイルでは動作しません。

this.login = function(scope, credentials) { 
    var url = REST_API.DOMAIN + REST_API.LOGIN; 
    $http.post(url, $.param(credentials)/* convert from json to query string */, { 
     headers: { 
      'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' 
     } 
    }) 
    .success (function(response){ 
     $log.info(response); 
    }) 
    .error(function(data, status, header, config){ 
      $log.error(data); 
    }); 
} 

私は、次のコマンドを使用してブラウザでテストしたときに私のコードはシームレスに動作します:私は私の電話でそれを起動したときに

イオンは

を果たすしかし:

イオンラン-lcアンドロイド

エラーコールバック関数は、応答データがNULLであることにすぐに呼び出されます。

enter image description here

それは動作を停止しています時間に仕事にいくつかの点で使用されるコードのこの作品。

コルドバプラットフォームは、Android
コルドバプラットフォームは、私が「[email protected]

もう一つのポイントを追加、削除:私はそれをやって覚えて唯一のものは、この動作は、Androidの新しいバージョンをインストールして影響を与えている可能性が気付いた点:httpリクエストをlocalhost上のWebサービスに送信しています。しかし、リモートサーバー上でWebサービスコードをホストすると、httpリクエストは自分の電話で正常に機能します。

+0

エラーが発生したことを確認しましたか? –

+0

@RameshRajendranはいそれは問題ありません – Meysam

答えて

2

コードを携帯電話にアップロードすると、ローカルホストはコンピュータではなく携帯電話になります。だからあなたの携帯電話にはリッスンするサーバーがないので、エラーが発生します。この問題を解決するには、お使いのコンピュータでlocalhostをコンピュータのIPに変更します。Windowsではipconfig、Linuxではifconfigと入力して学習することができます。 localhostではなく、192.168....または10....で始まる番号を記述します。そうすれば、あなたのコンピュータでも動作します。また、リモートサーバーに送信するときにも同じ理由があります。

+0

ありがとうございました。私はなぜ以前は動作していた 'localhost'と思ったのでしょうか? – Meysam

関連する問題