我在使用以下内容向泽西岛发帖时遇到问题......
var details = {username: uname, password: pword};
$.post('login',function(details){
console.log("sent: "+details);
});
正在运行我的登录页面中的正确功能,但username
和password
都为空。
以下是我如何消费它们......
public void login(@FormParam("username") String uname,
@FormParam("password") String pword){
System.out.println("username = " + uname + "password = " + pword);
}
我意识到我的POST不是表单,但@FormParam
是我能看到的唯一适合@
的表单。
修改
好的,我现在有以下内容......
正在进行POST
var details = {'username': username, 'password': password};
$.POST('login', details,function(result){
console.log(result);
},"json");
接收方式
@POST
public Viewable HeyStaksLogin(LoginInfo loginI){
String uname = loginI.username;
String pword = loginI.password;
System.out.println("username = ");
}
loginInfo
班级
@XmlRootElement
public class LoginInfo {
public String username;
public String password;
}
答案 0 :(得分:1)
数据作为$.post()
函数的第二个参数发送(第一个是url,第三个是成功回调),如下所示:
var details = { username: username, password: password };
$.post('login', details, function(result) {
console.log(result);
});
答案 1 :(得分:0)
@FormParam在这种情况下不可用,因为您发布的是JSON。以下是您可以做的一个示例:
1)将jersey-json.jar添加到项目依赖项
2)定义以下bean来表示消息正文:
@XmlRootElement
public class LoginInfo {
public String username;
public String password;
}
3)修改登录方法如下:
public void login(LoginInfo li) {
System.out.println("username = " + li.username + "; password = " + li.password);
}
答案 2 :(得分:0)
为您的服务器端方法尝试@Consumes(MediaType.APPLICATION_FORM_URLENCODED)注释