发布泽西& amp; JQuery的

时间:2011-10-30 21:12:35

标签: java jquery jersey

我在使用以下内容向泽西岛发帖时遇到问题......

var details = {username: uname, password: pword};
$.post('login',function(details){
    console.log("sent: "+details);
});

正在运行我的登录页面中的正确功能,但usernamepassword都为空。

以下是我如何消费它们......

   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;
}

3 个答案:

答案 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)注释