2016-09-08 19 views
0

を働いていない私は、ログインのためにそれを使用してサービスしてIを作成しました:AngularJS HTTP POSTを

EDIT:は「成功」と「エラー」コードを追加しました。

EDIT 2:私はJavascript/AngularJSを含むiOSモバイルアプリケーションを開発しています。だから私もapp.jsで、これを含めたアラートなどのエラーを表示する方法..

.service('Login', function($http, $q, $httpParamSerializerJQLike) { 
    return { 
     loginUser: function(ipAdd, name, pw) { 

     var sendurl = 'http://' + ipAdd + ':8080/loginuser/user.cgi'; 

     var postData = { 
      'ACTION' : 'login', 
      'LOGIN' : name, 
      'PASSWORD' : pw 
     }; 

     //what is the mistake here? 
     return $http({ 
         method : 'POST', 
         url : sendurl, 
         data : $httpParamSerializerJQLike(postData), 
         headers : { 'Content-Type': 'application/x-www-form-urlencoded'} 
         }).success(function(response) { 
         var x2js = new X2JS(); 
         var jsonObj = x2js.xml_str2json(response.data); 

         if (typeof jsonObj === 'object') { 
          alert("here:1"); 
          return jsonObj; 
         } else { 
          alert("here:2"); 
          // invalid response 
          return $q.reject(jsonObj); 
         } 

         }).error(function(response) { 
         //do error 
         //comes here when no internet connection is found.. 
          alert("here:3"); 
          return $q.reject(response.data); 
         }); 

     } 
     } 
    }) 

があります:

var app = angular.module("myApp", ['starter.services'],function($httpProvider){ 
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; 
}); 

私の実際のURLは次のようになります。

'http://' + ipAdd + ':8080/loginuser/user.cgi?ACTION=login&LOGIN=' + name + '&PASSWORD=' + pw; 

私もこのアプローチを試みました:https://stackoverflow.com/a/25570077/5876598

私のサービスは何も戻っていません.. 私は自分のURLの形成に間違いをしているのか、データを送信しているのかを知りたい。

ありがとうございました。

+0

consolse – Sajeetharan

+0

トライデータのエラーチェック: –

+0

$ httpParamSerializerJQLikeなしPOSTDATAをし、エラーのコンソールをチェックし、 '$ http'' promise'を返します。何を期待していますか?成功のコールバックは空です。 –

答えて

0

私は私のサービスで延期約束を追加しました。

"success().error()"".then(function(data, status, headers, config){})に変更しました。私が成功と失敗を使用したときになぜそれがうまくいかなかったのか分かりません。

0

間違いの原因を知る最も良い方法は、ナビゲータ開発者コンソールの[ネットワーク]タブを確認することです。

LinuxやMacで実行していると仮定すると、CURLを使用して、到達しようとしているURLを返すことができます。

このコードではお手伝いできません。

0

実際には、以前はサービスの提供を約束していました。以下の構造に従ってください

.service('Login', function($http, $q, $httpParamSerializerJQLike) { 
    return { 
    loginUser: function(ipAdd, name, pw) { 

    var sendurl = 'http://' + ipAdd + ':8080/loginuser/user.cgi'; 

    var postData = { 
     'ACTION' : 'login', 
     'LOGIN' : name, 
     'PASSWORD' : pw 
    }; 

    //what is the mistake here? 
    return $http({ 
        method : 'POST', 
        url : sendurl, 
        data : $httpParamSerializerJQLike(postData), 
        headers : { 'Content-Type': 'application/x-www-form-urlencoded'} 
        }); 

    } 
    } 
}) 

.controller('SomeCtrlName',function(Login){ 
    //pass your parameter to below service. 
    Login.loginUser().then(function success(){ 
    //write success code here 
    },function error(){ 
    //write error code here 
    )}; 
}) 
関連する問題