@Path("webadd21")
@POST
@BeanParam
@Consumes( MediaType.APPLICATION_FORM_URLENCODED) //接收的
public String doAdd21(Contact contact){
System.out.println(222);
System.out.println(contact.getId());
System.out.println(contact.getName());
}
我的页面请求使用ajax发布表单,如下所示:
var dd = $("#testForm").serialize();
$.ajax({
type : "POST",
data : JSON.stringify(dd),
url : "/arq/rest/booking/webadd21",
//contentType:"application/json",
dataType : "json",
success : function(data) {
//alert(data);
}
})
但我总是得到错误415,我该怎么办?
答案 0 :(得分:0)
似乎APPLICATION_FORM_URLENCODED
仅适用于@FormParam
带注释的参数,无法映射到实体:
媒体类型" application / x- WWW窗体-urlencoded"根据字符串定义参数,并且没有与每个参数相关联的内容类型,因此在这种情况下,通用消息体读取器/写入器不能像JAXB那样使用。
由于您使用ajax发送json数据,因此更简单的解决方案是将您的服务声明为使用json:
@Consumes(MediaType.APPLICATION_JSON)
This thread也建议使用MULTIPART_FORM_DATA
代替,这似乎适用于实体。
答案 1 :(得分:0)
您必须包括以下内容:
headers: {Accept: "application/json"},
关于ajax属性