【发布时间】:2015-02-23 01:12:49
【问题描述】:
我在 Angular 中构建了一个简单的应用程序,使用了我自己使用 Laravel 创建的一个简单 API。该应用程序托管在here。 API 托管在here。现在我可以登录到应用程序,此时 API 返回一个简单的 auth_token,它作为 URL 参数在每个发送到服务器的后续请求中发送。
系统中只有一个用户:
Email: admin@admin.com
Password: admin12345
您可以使用这些凭据登录应用程序,此时应用程序将使用$cookieStore 服务设置一个 cookie,并将此 cookie 中的令牌用于每个后续请求。使用该应用程序后,用户可以从该应用程序注销,其中向服务器发送DELETE 请求,并在成功方法上从浏览器中删除cookie。
不幸的是,我认为代码存在一些问题。 DELETE 请求按预期工作,它删除服务器上的 auth_token 并返回 200 OK。但是没有调用success方法。我不确定我做错了什么。这可能只是语法问题。
app.js
function AppCtrl ($scope, $cookieStore, $location, Auth) {
$scope.setActive = function (type) {
$scope.destinationsActive = '';
$scope.flightsActive = '';
$scope.reservationsActive = '';
$scope[type + 'Active'] = 'active';
};
$scope.authenticate = function (credentials) {
Auth.save(credentials, function(data){
$cookieStore.put('auth_token', data.auth_token);
$scope.isLoggedIn = true;
$location.path('destinations');
$scope.message = null;
}, function(data){
$scope.message = "Email/Password combination incorrect!";
});
};
$scope.logout = function () {
//var auth_token = $cookieStore.get('auth_token');
Auth.delete({
'auth_token': $cookieStore.get('auth_token')
}, function(data){
$scope.isLoggedIn = false;
$cookieStore.remove('auth_token');
});
};
if($cookieStore.get('auth_token')){
$scope.isLoggedIn = true;
}else{
$scope.isLoggedIn = false;
}
}
当按下注销按钮时调用注销函数。我在这里做错了什么?
注意:由于某种原因,该应用程序无法在 Chrome 上运行(使用 Firefox)。如果您能对此有所了解,那将非常有帮助。
如果您想看看,这两个存储库都是公开的:
AngulAir 应用程序:http://gitlab.learningtechasia.com:8901/rohan0793/angulair.git
AngulAirAPI:http://gitlab.learningtechasia.com:8901/rohan0793/angulairapi.git
【问题讨论】:
-
有 2 个文件未在 chrome 中加载。出现 404 错误。 angulair.rohanchhabra.in/js/controllers/login.js angulair.rohanchhabra.in/controller.js 这可能会导致问题..
-
我知道。那是我不明白的。我的服务器上启用了 CORS。该网站在 Firefox 上运行并获取所有文件。
-
Mozilla 中的同样问题,我在开发者工具的网络选项卡中看到同样的错误
-
我刚刚深入研究了您的项目,发现您的 git 存储库中缺少 ..controllers/login.js 和 controller.js ..
标签: javascript ajax angularjs cookies angular-resource