我知道有一些线程有同样的问题,但是我没有让它正常运行。我还是很陌生。
我正在运行JAX-RS服务器:
GET
方法有效。 POST
方法没有。
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response post(Movie movie){
System.out.println("In the POST method");
String result = movie.toString();
return Response.status(201).entity(result).build();
在我的Oracle JET客户端中,我想发帖子:
addMovie = function(){
console.log("post sent");
$.ajax({
type: "POST",
url: "http://localhost:8080/MovieRestService/resources/movies",
headers: {
"Content-Type": "application/json"
},
data:
{
id: 2,
name: "test",
director: "test",
year: 234
},
success: "success",
dataType: 'application/json'
});
它一直给我一个415 Unsupported Media Type
错误。
对我来说有点奇怪的是,在响应标头中,内容类型为text / html Content-Type: text/htlm
任何人都有解决方案吗?
修改
经过大量的网络搜索后,我终于找到了真正的问题......看来Glassfish 4.1.1中有一个错误,它在我的服务器发帖时导致了问题。
答案 0 :(得分:0)
这应该有效
var url = 'http://localhost:8080/MovieRestService/resources/movies';
var sucessCallback = function(response) {...}
var data = JSON.stringify({
id: 2,
name: "test",
director: "test",
year: 234
});
$.ajax({
url: url,
method: POST,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: data,
cache: false,
context: this,
}).success(sucessCallback);