2017-02-27 4 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와 (prettified & 제거 민감한 데이터)에 의해 브라우저 콘솔에서와 같이 오류입니다 :

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

당신이 다음에 오류 기능을 추가하는 시도에 대한 자세한 내용을보실 수 있습니다? . (. function() {// 성공 함수}, function() {console.log (arguments); // 에러 함수})''. 함수 (성공 만) 또는 함수 (성공 및 오류)가되는 인수 2 개를 취할 수 있습니다. – mtizziani

+0

데이터를 서버 측에 전달하기 위해 양식 제출을 사용하고 있습니까? –

답변

2

$http이 반환하는 약속은 첫 번째 익명 함수를 호출하여 해결됩니다. 약속이 거부되면 두 번째 익명 함수가 호출됩니다. 이것은 트릭을해야합니다. 더 많은 예를 들어

$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; 
    } 
}); 

는 읽기 docs

당신은 약속 here

+0

OMG, @digijap 당신은 내 하루를 저장했습니다! 이 행동에 대한 설명 주셔서 감사합니다. –