ПОСТИНГ с Джерси и JQuery - PullRequest
       4

ПОСТИНГ с Джерси и JQuery

0 голосов
/ 31 октября 2011

У меня проблема с отправкой сообщения на Джерси с использованием следующего ...

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 является единственным @ Я вижу, что подходит здесь.

EDIT

Хорошо, у меня сейчас есть следующее ...

производимый ПОСТ

    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 ]

1 голос
/ 31 октября 2011

Данные отправляются как второй аргумент функции $.post() (первый - это URL-адрес, а третий - обратный вызов успеха), например:

var details = { username: username, password: password };
$.post('login', details, function(result) {
    console.log(result);
});
0 голосов
/ 22 марта 2012

попробуйте аннотацию @Consumes (MediaType.APPLICATION_FORM_URLENCODED) для вашего серверного метода

0 голосов
/ 31 октября 2011

@ 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...