我是使用Angularjs的新手,我正在使用AngularJS通过REST API构建一个登录页面。我正在尝试提交表单时遇到问题。我浏览了很多网站和链接,但我没有得到正确答案。请不要告诉我谷歌它,因为我已经有这么多的蓝色链接。如果你知道任何事情,请纠正我,如果你有任何工作实例分享它。
AngularJS:
var app = angular.module('logapp',['toastr','ngRoute']);
app.factory('Auth', function($http){
var service = {};
service.login = function(username,password) {
$http.post('http://localhost:3000/loginfo',
{
username : username,
password : password
})
.then(
function successCallback(response){
console.log(response.data);
});
};
service.isAuthenticated = function() {
return {
isAuthenticated : false,
}
};
return service;
});
app.controller('credientials', function($scope,$http,Auth) {
$scope.isAuthenticated = false;
$scope.userCred = {
username: '',
password: ''
}
/*-----Form Submition-----*/
$scope.log = function(userCred){
Auth.login(userCred, function(result) {
console.log(Auth);
if (result === true) {
console.log('success');
} else {
$scope.Error = response.message;
}
});
};
答案 0 :(得分:0)
首先,这部分
Auth.login(userCred, function(result) {
错了。您的service.login
需要2个参数。它们是用户名和密码。它不需要任何回调。
正确的方法是这样的
Auth.login(userCred.username, userCred.password)
.then(function(result){
console.log(result);
})
.catch(function(err){
console.error(err);
});
不言而喻,您重构service.login
如下
service.login = function(username,password) {
return $http.post('http://localhost:3000/loginfo',{
username : username,
password : password
})
}