2017-02-27 20 views
1

私はGoogleで検索し、同様の/同じ問題についてはスタックオーバーフローしました。しかし、私はこれを初めて知っている人はいません。どのようにして自分のコードを修正できるのか分かりません。AngularJS 400の悪い要求は応答を与えません

だから、ここに私のスクリプトです:

$http.post('/authlogin', { 
    email: $scope.userdata.email, 
    password: $scope.userdata.password 
}).then(function(response) { 
    console.log(response); 
    if (response.status == 400) { 
     $scope.errormsg = response.data; 
    } 
    if (response.status == 200) { 
     window.location = '/admin'; 
    } 
}); 

すべてが200 OK応答のために正常に動作しています。しかし、ログインに失敗したときはいつでも、APIは400 Bad Requestを返します。現時点では、responseの無名関数を呼び出すことさえしていないようです。大半は、など400のチェック、200、201を配置&実行完全に大丈夫だったが、なぜここで400

ではAngularJS(清書&削除機密データ)によってブラウザのコンソールに示すように、エラーです:

Possibly unhandled rejection: 
{ 
    "data": "Invalid email/password combination.", 
    "status": 400, 
    "config": { 
     "method": "POST", 
     "transformRequest": [null], 
     "transformResponse": [null], 
     "jsonpCallbackParam": "callback", 
     "url": "/authlogin", 
     "data": { 
      "email": "####", 
      "password": "***" 
     }, 
     "headers": { 
      "Accept": "application/json, text/plain, */*", 
      "Content-Type": "application/json;charset=utf-8" 
     } 
    }, 
    "statusText": "Bad Request" 
} 

私はangular.jsのプロではありません。この動作と解決策の説明はわかります。

私の目標は、dataに返されたエラーメッセージをユーザーに表示することです。

+0

についての詳細を読むことができますdocs

を読んで、あなたはその後に誤差関数を追加しようとしましたか? 。(。function(){//成功関数}、function(){console.log(arguments); //エラー関数}) ''。 1つの引数を関数(成功のみ)にするか、2つの引数を関数(成功とエラー)にすることができます – mtizziani

+0

フォーム送信を使用してデータをサーバー側に渡していますか? –

答えて

2

$httpによって返される約束事は、最初の匿名関数を呼び出すことによって解決されます。約束が拒否された場合、2番目の無名関数が呼び出されます。これはトリックを行う必要があります。より多くの例については

$http.post('/authlogin', { 
    email: $scope.userdata.email, 
    password: $scope.userdata.password 
}).then(function(successCallback) {  
    if (successCallback.status == 200) { 
     window.location = '/admin'; 
    } 
}, function(errorCallback){ 
    if (errorCallback.status == 400) { 
     $scope.errormsg = errorCallback.data; 
    } 
}); 

あなたが約束here

+0

OMG、@digijapあなたは私の日を救った!この動作の説明に感謝します。 –

関連する問題