我尝试使用Ajax和JAX RS将JSON对象发送到Java EE服务器。
当我执行客户端请求时,我收到 HTTP415 错误。
这是代码..
var obj = {nome:"a", cognome:"b"};
$.post("http://localhost:8080/MyApp/resources/Class/Method",obj).done(function(data) {
alert( "..." + data);
})
.fail(function() {
alert( "error" );
});
Java类:
public class Oggetto implements Serializable{
private static final long serialVersionUID = 1L;
private String nome;
private String cognome;
public Oggetto() {}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCognome() {
return cognome;
}
public void setCognome(String cognome) {
this.cognome = cognome;
} }
和休息班:
@POST
@Path("/Method")
@Consumes(MediaType.APPLICATION_JSON)
public String Mex(final Oggetto obj) {
return "ok";
}
我从浏览器控制台收到错误。 HTTP415:不支持的媒体类型
我尝试使用AngularJS调用,但它是一样的。
我做错了什么?
感谢。
答案 0 :(得分:0)
您没有设置内容类型。您还需要stringify
请求对象。请参阅此示例,$.ajax
($post
是简写)
$.ajax({
type: "POST",
url: "http://localhost:8080/MyApp/resources/Class/Method",
data: JSON.stringify(obj),
contentType: "application/json; charset=utf-8"
}
}).done(function(data){
答案 1 :(得分:0)
用您的Rest类方法注释 @Consumes(MediaType.APPLICATION_JSON) 所以它只期望请求的Content-Type是application / json。
删除@Consumes(MediaType.APPLICATION_JSON)或发送带有请求的Content-Type,如pedrofb所示。