我有一个包含一些代码的登录页面。
<div ng-show="!loggedIn()">
<form ng-submit="login()">
Username:
<input type="text" ng-model="userName"/>
Password:
<input type="password" ng-model="userPassword"/><span><input type="submit" value="Login"/>
</form>
</div>
使用js文件和userPassword中的userName模型登录链接 - 不是。
$scope.login = function() {
$scope.error = null;
mainService.login($scope.userName, $scope.userPassword).then(function(token) {
$scope.token = token;
$http.defaults.headers.common.Authorization = 'Bearer ' + token;
$scope.checkRoles();
},
function(error){
$scope.error = error;
$scope.userName = '';
$scope.userPassword = '';
});
};
...
appModule.service('mainService', function($http) {
return {
login : function(username, userpassword) {
return $http.post('/user/login', {name: username}, {password: userpassword}).then(function(response) {
return response.data.token;
});
},
我有一些内部类的控制器
@SuppressWarnings("unused")
private static class UserLogin {
public String name;
public String password;
}
和方法login()
@RequestMapping(value = "login", method = RequestMethod.POST)
public LoginResponse login(@RequestBody final UserLogin login)
throws ServletException {
System.out.println(login.name + login.password);//
这里login.name =我在网页(Login)和login.password中写的内容总是= null。 我做错了什么?
答案 0 :(得分:0)
它无效的原因是因为您的POST调用将密码作为$http.post
中的配置参数传递。您的密码应该是数据参数对象的一部分:
$http.post('/user/login', {name: username, password: userpassword})
答案 1 :(得分:-1)
登录功能必须改变如下:
login : function(username, userpassword) { return $http.post('/user/login', {name: username, password: userpassword}).then(function(response) { return response.data.token; });