使用jquery调用JAX-RS

时间:2012-05-20 21:15:58

标签: jquery json jax-rs

我正在使用JAX-RS来构建Restufl Web应用程序,我在调用带有使用json对象的post方法的web服务时遇到了问题。 我必须使用jquery来调用webservice 这是方法

 @POST
@Path("/client")
@Consumes(MediaType.APPLICATION_JSON) 
public Response showClient(Client c){
     String name = c.getAdresseCl() + ""+ c.getEmailCl();
    ResponseBuilder builder = Response.ok(name);
    builder.header("Access-Control-Allow-Origin", "*");
    builder.header("Access-Control-Max-Age", "3600");
    builder.header("Access-Control-Allow-Methods", "GET");
    builder.header(
            "Access-Control-Allow-Headers",
            "X-Requested-With,Host,User-Agent,Accept,Accept-Language,Accept-Encoding,Accept-Charset,Keep-Alive,Connection,Referer,Origin");
    return builder.build();
}

使用jquery进行客户端调用:

  var data={'adressCl':'myAdress','emailCl':'example@domain.com'};
$.ajax({
"type":"post",
"dataType":"json",
"data":data,
"url":"http://localhost:9080/FournisseurWeb/jaxrs/clients/client",
"success":function(res){
console.log(res);
}
});/*
$.post("http://localhost:9080/FournisseurWeb/jaxrs/clients/client",data,function(res){
console.log(res);
});*/

我收到此错误:“NetworkError:415不支持的媒体类型 请帮忙!和thx提前

1 个答案:

答案 0 :(得分:0)

http://api.jquery.com/jQuery.ajax/ contentType字段说明看起来.ajax()默认发送application / x-www-form-urlencoded,而不是json,所以你需要正确设置:application / JSON

我从未检查过,但我总是使用“类型”:“POST”而不是“类型”:“发布”,也许这就是问题所在。