[英]AngularJS consumes JAX-RS rest web service
这是我第一次在Web应用程序中使用Java后端。 我有一个尝试通过AngularJS应用程序使用的Jax-rs Web服务
AngularJS调用
$http({
url : REST_END_POINT + '/checkuser',
method : "GET",
data : {
'userId' : credentials.username,
'pwd' : credentials.password
},
dataType : "json",
headers : {
"Content-Type" : "application/json"
}
});
网络服务
@GET
@Produces("application/json")
@Consumes("application/json")
@Path("checkuser/")
public string getCheckUser(@QueryParam("userId") String userId, @QueryParam("pwd") String pwd){
try{
if(port != null){
boolean result = port.checkUser(userId, pwd);
return new java.lang.Boolean(result).toString();
}
}catch(Exception ex){
//TODO
}
return null;
}
userId
和pwd
始终为null
使用Firebug,我可以看到数据包含
Object{
userId="aaa",
pwd="aa"
}
我也尝试使用JSON.stringify
发送那些数据:
"{"userId":"aaa","pwd":"aa"}"
我认为您尝试访问userID和pwd的方式不正确,您使用的是@QueryParam,它将查找userID和pwd作为GET请求的查询参数,如下所示:
http:// myservice:port / checkuser?userId = myuserid&pwd = pass
如果您将GET请求更改为
$http({
url : REST_END_POINT + '/checkuser',
method : "GET",
params : {
'userId' : credentials.username,
'pwd' : credentials.password
},
dataType : "json",
headers : {
"Content-Type" : "application/json"
}
});
那你应该有更多的运气。
但是我不建议这种方法,因为它可能不安全。 相反,我将尝试使用现有的身份验证系统,而不要自己动手,因为这些现有的身份验证系统将更加安全。
您可以使用Jackson api将json与Java对象转换。
Jackson包含简单的映射器方法,可将json属性隐式映射到Java类成员变量。
代替@querypram,使用具有字段作为userId和pwd的Java类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.