2016-06-02 3 views
1

저는 프론트 엔드 Angular App과 별도의 Laravel 5.1 API를 구축하고 있습니다. 중복 전자 메일 주소를 게시하여 등록 유효성 검사를 테스트하고 있습니다.Laravel의 상태 코드가 Angular http로 수신되지 않았습니다.

내 각도 $http 방법은 전혀 응답을받지 않습니다

return new JsonResponse($errors, 422);

이 상태 코드에서 오류가 발생, 따라서 success NOR error 방법은 각 응답에 호출됩니다. 내가 JsonResponse에서 상태 코드 422를 제거하면

그러나 :

return new JsonResponse($errors); 

나는 각도에 응답을받을 수 있습니다. 상태 코드 422를 사용하는 것은 여전히 ​​네트워크 탭에서 응답을 반환하기 때문에

나는이 홀수를 찾을 수 있지만, 각도에 의해 수신되지 것 :

422 (처리 할 수 ​​없음 법인)

응답 : 이메일 : [ "이메일을 이미 가져 왔습니다."]

나는 이 아닌 20이 트리거되기를 원하기 때문에 Laravel의 상태 코드를 전달하고 싶습니다. 각도는 $http .error입니다.

코드 조각 :

각도 :

signup: function(params) { 
    return $http({ 
     method: 'POST', 
     url: url + ver + '/auth/register', 
     data: params, 
     cache: true 
    }); 
} 

Auth.signup(scope.user).success(function(res){ 
    console.log(res); 
}).error(function(err) { 
    alertify.error('There was an error with your login credentials. Please try again'); 
}); 

Laravel :

public function postRegister(Request $request) 
{ 
    $validator = $this->validator($request->all()); 

    if ($validator->fails()) { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 

protected function buildFailedValidationResponse(Request $request, array $errors) 
{ 
    if ($request->ajax() || $request->wantsJson()) { 
     return new JsonResponse($errors, 422); 
    } 

편집 : 나는 또한 생이었다 각도 error422 코드에 의해 실행되지 않는 문제 일 수 있습니다. This는 상단에 추가라고하지만이 문제

$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"; 

답변

1

은 $ HTTP 기존의 약속 방법의 성공과 오류가되지 을이었다에게 해결되지 않았다. 대신 표준을 사용하십시오. $ httpProvider.useLegacyPromiseExtensions가 false로 설정된 경우이 메서드는 $ http/legacy 오류를 발생시킵니다.

https://docs.angularjs.org/api/ng/service/$http

대신 then를 사용해보십시오

:

Auth.signup(scope.user).then(function(res) { 
    console.log(res); 
}, function(err) { 
    alertify.error('There was an error with your login credentials. Please try again'); 
}); 
+1

작동하는 것 같다 이상한 흠. – Growler

+0

@Growler가 $ http 인터셉터를 사용하고 있습니까?그렇다면 http://stackoverflow.com/a/22425383/3574819를 참조하십시오. – FuzzyTree

관련 문제