Java 在泽西岛及;JQuery
我有一个问题发布到泽西岛使用以下Java 在泽西岛及;JQuery,java,jquery,jersey,Java,Jquery,Jersey,我有一个问题发布到泽西岛使用以下 var details = {username: uname, password: pword}; $.post('login',function(details){ console.log("sent: "+details); }); 正在运行我的登录页面中的正确功能,但用户名和密码均为空 以下是我如何消费它们 public void login(@FormParam("username") String uname, @
var details = {username: uname, password: pword};
$.post('login',function(details){
console.log("sent: "+details);
});
正在运行我的登录页面中的正确功能,但用户名
和密码
均为空
以下是我如何消费它们
public void login(@FormParam("username") String uname,
@FormParam("password") String pword){
System.out.println("username = " + uname + "password = " + pword);
}
我意识到我发布的不是表单,但@FormParam
是我能看到的唯一适合这里的@
编辑
好的,我现在有以下内容
正在制作的帖子
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 = ");
}
登录信息类
@XmlRootElement
public class LoginInfo {
public String username;
public String password;
}
数据作为函数的第二个参数发送(第一个是url,第三个是成功回调),如下所示:
var details = { username: username, password: password };
$.post('login', details, function(result) {
console.log(result);
});
@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);
}
为您的服务器端方法尝试@Consumes(MediaType.APPLICATION\u FORM\u URLENCODED)注释同样的问题。服务器返回500错误。两个参数都为空。@user596186,看起来服务器希望调用参数
username
和password
,而不是uname
和pword
。您可以尝试这样修改您的请求:var-details={username:username,password:password}代码>?我现在得到以下响应。TypeError:对象函数(a,b){return new e.fn.init(a,b,h)}没有方法'POST'仍然没有解决我的问题。它声称方法未定义
好的,我以为您跳过了代码段中的注释只是为了保持简短。当然,您的登录方法需要用@POST注解,还应该用@Consumes(“application/json”)注解。您可以不返回void,而是返回Response,return语句可以如下所示:return Response.seeOther(url\u you\u want\u redirect\u to).build()代码>。