我正在构建一个在客户端使用AngularJS在服务器端使用Java的应用程序。我正在尝试登录,但是当我使用AngularJS通过username
请求发送数据(password
和POST
)时,我不断遇到这两个错误:
POST http://localhost:8008/WebProjekat/rest/auth/login 400 (Bad Request)
和
可能未处理的拒绝:{“ data”:“无法从[来源:org.glassfish.jersey.message.internal.EntityInputStream@542ca5bc;第1行:START_OBJECT令牌中反序列化java.lang.String实例\ n ,列:2](通过参考链:MyResponsePackage.User [\“用户名\”])“,”状态“:400,”配置“:{”方法“:” POST“,” transformRequest“:[null], “ transformResponse”:[空],“ jsonpCallbackParam”:“回调”,“ url”:“ / WebProjekat / rest / auth / login”,“ data”:{“ username”:{“ ng339”:8},“ password “:{” ng339“:9}},”标题“:{” Accept“:”应用程序/ json,文本/纯文字, / “,”授权“:”基本“,”内容-类型“:” application / json; charset = utf-8“}},” statusText“:”错误请求“}
这是我的angularjs代码,它执行了rquest:
factory.Login = function(username, password, callback){
$http.post('/WebProjekat/rest/auth/login', {username: username,
password: password})
.then(function(response){
callback(response);
})
}
这是我的Java代码,用于检查凭据是否有效
@POST
@Path("/login")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public MyResponse login(User u) {
String username = u.getUsername();
String password = u.getPassword();
MyResponse response = null;
if(password.equals("test") && username.equals("test")) {
response = new MyResponse(true, "Succes!");
}else {
response = new MyResponse(false, "Error");
}
return response;
}
这是我的User类
public class User {
private String username;
private String password;
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
对于在答案中是否存在类似问题,我深表歉意。我尝试寻找它,但无法解决我的问题。我希望这个问题很清楚,如果需要任何进一步的解释,我会提供。如果有人可以帮助我,我将非常感激。