【发布时间】:2016-10-05 02:30:40
【问题描述】:
我有一个带有一些代码的登录页面。
<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 文件中的用户名模型和用户密码 - 不是。
$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.password 总是 = null。 我做错了什么?
【问题讨论】:
-
你省略了相关代码:
mainService.login. -
取决于您发送数据的方式...默认
$http使用内容类型 application/json 而不是表单编码。显示服务方式 -
添加到问题中
-
您需要更改发送的 contentType 或接收请求正文为 json
-
是的,当我将类型密码更改为文本时 - 它可以工作,但密码不应该是可见的
标签: javascript java html angularjs