2014-08-29 4 views
0

я маршрут определяется в routes.php файла, но когда я сделать запрос AJAX от моего углового приложения, я получаю эту ошибкуОпределяется маршрут метода контроллера метания не найден 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

его почтовый запрос использует $ http.post в методе API.register() – MrFoh

ответ

1

Исправлена ​​ошибка, из-за которой мой контроллер вызывал неопределенный метод в классе контроллера. Правильно переименовал метод и запрос теперь работает, спасибо ребятам за ввод.

3

Было бы помочь, чтобы увидеть код, который вы используете, чтобы сделать угловой запрос, а также информацию заголовка из регистратора от Chrome, но я предполагаю, что Angular отправит запрос AJAX с помощью метода GET вместо метода POST. Попробуйте изменить Agular, чтобы отправить явное сообщение POST или изменить routes.php, так что auth/signup отвечает как на GET, так и на POST.

Update глядя на ваши снимки экрана, запрос AJAX возвращает ошибку 500. Там должна быть информация писаться либо файл laravel.log или ваш PHP/журнал ошибок веб-сервера, почему происходит ошибка. Мое предположение, если ваш Угловой запрос отправляет разную информацию, которую делает ваше приложение Chrome/REST, и это вызывает путь кода, где есть ошибка.

+0

Скриншот показывает, что это запрос 'POST'. –

Смежные вопросы