Jersey使用@POST接收不到客户端发来的数据

紫凯茗檬 2016-05-19 12:00:09
服务器端代码:

@Context
@POST
@Path("adduser")
@Produces({ MediaType.APPLICATION_JSON})
public Admin adduser(@FormParam("username") String username,@FormParam("password") String password,@Context HttpServletRequest request){
Admin admin = new Admin();
System.out.println(request.getParameter("username"));
admin.setUsername(request.getParameter("username"));
admin.setPassword(request.getParameter("password"));
adminDAO.save(admin);
System.out.println(admin);
return admin;
}


Web客户端代码:

$(document).ready(function() {
$("#btn3").click(function() {
$.ajax({
url: "http://localhost:8080/RestSpringDemo/rs/users/adduser",
type: "post",
dataType: "json",
data: {username:"boguss",password:"123"},
contentType:'application/json',
success: function(data) {
alert("success");
},
error : function() {
alert("ajax error");
}
});
});

});


服务器端接收不到任何参数?请大家看看是什么问题(第一次使用Jersey)
...全文
206 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianfang 2016-05-19
  • 打赏
  • 举报
回复
你客户端用json,服务端用 form接收,当然收不到 不熟悉js,好像它post的参数是data,就是@FormParam(data),内容是json格式的 “username:"boguss",password:"123" 处理这种不规范json的时候 ,name没有引号,使用jackson时候需要设置: ObjectMapper mapper = new ObjectMapper(); mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); Jersey中也要相同功能的设置

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧