我使用jQuery代码和方法POST:
将这些数据发送到Restful Web Service(Jersey)var dataString = {"id":1,"status":"passed","session":"nothing"};
$.post("https://localhost:8443/pv01/ws/user/cookie", dataString);
有了这些数据,我发送了一个cookie。 te cookie中的数据来自外部API。
我面临的问题是如何一起接收cookie值和dataString。
这是我读取Cookie的Java代码:
@POST
@Path("cookie")
public String cookie(@CookieParam("L14c") String str) {
Logger.getLogger(Main.class.getName()).log(Level.INFO, "message : " + str );
return str;
}
对于数据,我可以这样做:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("cookie")
public String cookie(DataString dataString) {
Logger.getLogger(Main.class.getName()).log(Level.INFO, "message : " + dataString );
return "ok";
}
但是当我将两种方法结合起来接受cookie和JSON dataString时,我得到了错误415,不支持的媒体类型!
我试图查看HTTP标头,但我只能访问cookie。
答案 0 :(得分:1)
问题在于jQuery请求。看起来Content-Type
默认为application/x-www-form-urlencoded
。您应该使用像Firebug这样的浏览器调试器。更容易发现这些事情。
从我测试的内容来看,它应该与
类似$.ajax({
url: theUrl,
type: "POST",
data: JSON.stringify(dataString),
dataType: "json",
contentType: "application/json",
success: function(response) {
alert(JSON.stringify(response));
}
});