我正在尝试跟随David Mosher关于在youtube上使用角度JS进行端到端的教程:http://www.youtube.com/watch?v=hqAyiqUs93c。
在我尝试将/ auth / login和auth / logout网址路由到身份验证服务之前,一切都很顺利,如大约14:30的视频所示。当我尝试登录时,收到404 Not Found错误。我试过搞乱路线的URL,但无济于事。我使用MySQL和Laravel在MAMP本地运行。
这是我的routes.php代码
Route::get('/', function(){
return View::make('index');
});
Route::post('/auth/login/', 'AuthController@login');
Route::get('/auth/logout/', 'AuthController@logout');
和我的AuthController代码
<?php
class AuthController extends BaseController {
public function login()
{
if(Auth::attempt(array('email' => Input::json('email'), 'password' => Input::json('password'))))
{
return Response::json(Auth::user());
} else {
return Response::json(array('flash' => 'Invalid username or password'), 500);
}
}
public function logout()
{
Auth::logout();
return Response::json(array('flash' => 'Logged Out!'));
}
}
最后,身份验证服务的代码
angular.module("epicApp")
.factory('AuthenticationService', function($http, $location){
return{
login: function(credentials){
return $http.post("/auth/login/", credentials);
},
logout: function(){
return $http.get("/auth/logout/");
}
}
})
答案 0 :(得分:0)
唯一的问题是您必须在路线和角度脚本中将所有/auth/login/
替换为auth/login
和/auth/logout/
至auth/logout
。
所以你的路线应该是,
Route::get('/', function(){
return View::make('index');
});
Route::post('auth/login', 'AuthController@login');
Route::get('auth/logout', 'AuthController@logout');
和js,
angular.module("epicApp")
.factory('AuthenticationService', function($http, $location){
return{
login: function(credentials){
return $http.post("auth/login", credentials);
},
logout: function(){
return $http.get("auth/logout");
}
}
})
答案 1 :(得分:0)
我不知道这个问题是否仍然相关,但如果在公共文件夹中索引文件不是.php,您将获得带有任何HTTP URL的404。 您可以重命名角度应用的index.html。