我在routes.php文件中定义了一个路由但是当我从我的角度应用程序发出ajax请求时,我收到此错误
{"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', 'ApiUserController@authUser');
Route::post('auth/signup', 'ApiUserController@registerUser');
/* Persons */
Route::group(array('prefix' => 'people'), function() {
Route::get('{id}', 'ApiPeopleController@read');
Route::get('/', 'ApiPeopleController@read');
});
/* Events */
Route::group(array('prefix' => 'events'), function() {
Route::get('{id}', 'ApiEventsController@read');
Route::get('/','ApiEventsController@read');
});
});
从Chrome上的其他客户端应用访问相同的网址(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 :(得分:3)
有助于查看您用于制作角度请求的代码以及来自Chrome Network -> XHR
记录器的标题信息,但我的第一个猜测是Angular使用GET
方法而不是POST
方法发送AJAX请求。尝试更改Agular以发送明确的POST
或更改routes.php
,以便auth/signup
响应GET
和POST
个请求。
更新查看您的屏幕截图,AJAX请求返回错误500.应该将您的laravel.log文件或PHP / webserver错误日志中记录的信息记录为何错误正在发生。我猜你的Angular请求会发送你的Chrome / REST-app所做的不同信息,并触发出现错误的代码路径。
答案 1 :(得分:1)
解决了问题,我的控制器在控制器类中调用了一个未定义的方法。 正确地重命名方法,请求现在正常工作,感谢大家的意见。