2014-08-29 2 views
0

나는 경로가 routes.php 파일에 정의했지만 난 내 각 응용 프로그램에서 아약스 요청을 할 때, 나는이 오류를 얻을 수는정의 경로 던지는 컨트롤러 방법을 찾을 수 없습니다 laravel 4

{"error":{"type":"Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException","message":"Controller method not found.","file":"C:\\xampp\\htdocs\\tedxph\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controllers\\Controller.php","line":290}} 

이 내 경로 파일입니다

/* 
|-------------------------------------------------------------------------- 
| Api Routes 
|-------------------------------------------------------------------------- 
*/ 

Route::group(array('prefix' => 'api'), function() { 
    //Auth Routes 
    Route::post('auth/login', '[email protected]'); 
    Route::post('auth/signup', '[email protected]'); 
    /* Persons */ 
    Route::group(array('prefix' => 'people'), function() { 

     Route::get('{id}', '[email protected]'); 
     Route::get('/', '[email protected]'); 
    }); 
    /* Events */ 
    Route::group(array('prefix' => 'events'), function() { 

     Route::get('{id}', '[email protected]'); 
     Route::get('/','[email protected]'); 
    }); 
}); 

chrome web inspector Same post request in a rest client app on chrome 오류를 제공하지 않습니다 크롬에 나머지 클라이언트 응용 프로그램에서 동일한 URL (http://localhost/site/public/api/auth/signup) 액세스, 무슨 일을 할 수 있을까?

이 내 컨트롤러에서 각 코드는

$rootScope.show('Please wait..registering'); 
       API.register({email: email, password: password}) 
       .success(function (data) { 
        if(data.status == "success") { 
         console.log(data); 
         $rootScope.hide(); 
        } 
       }) 
       .error(function (error) { 
        console.log(error) 
        $rootScope.hide(); 
       }) 

더 각도 코드

angular.module('tedxph.API', []) 
    .factory('API', function ($rootScope, $http, $ionicLoading, $window) { 
    //base url 
    var base = "http://localhost/tedxph/public/api"; 

    return { 
     auth: function (form) { 
      return $http.post(base+"/auth/login", form); 
     }, 

     register: function (form) { 
      return $http.post(base+"/auth/signup", form); 
     }, 

     fetchPeople: function() { 
      return $http.get(base+"/people"); 
     }, 

     fetchEvents: function() { 
      return $http.get(base+"/events"); 
     }, 
    } 
}); 
+0

POST 또는 GET을 시도합니까? POST 요청으로 설정했기 때문입니다. – Lynx

+0

그것의 게시물 요청은 API.register() 메소드에서 $ http.post를 사용하고 있습니다 – MrFoh

답변

1

컨트롤러가 컨트롤러 클래스에서 정의되지 않은 메서드를 호출하는 문제가 수정되었습니다. 메소드의 이름이 올바르게 변경되었으며 요청이 작동합니다. 입력에 대해 감사드립니다.

3

그것은 당신이 각 요청을하는 데 사용하는 코드를 참조하는 데 도움이뿐만 아니라 것 Chrome의 Network -> XHR 로거의 헤더 정보가 있지만 Angular가 메소드 대신 GET 메소드를 사용하여 AJAX 요청을 보내고 있습니다. Agular를 변경하여 명시적인 POST을 보내거나 routes.php을 변경하여 GETPOST 요청에 모두 auth/signup이 응답합니다. 당신의 스크린 샷을보고

업데이트는 AJAX 요청은 왜 오류가 일어나고에 관해서는 500이 있어야 정보가 laravel.log 파일 또는 PHP/웹 서버 오류 로그 중 하나에 기록 오류를 반환합니다. 내 생각 엔 Angular 요청이 Chrome/REST-app에서 수행하는 다른 정보를 보내고 오류가있는 코드 경로를 트리거하는 것 같습니다.

+0

스크린 샷은 그것이'POST' 요청임을 보여줍니다. –

관련 문제