我的问题是,即使每件事看起来都很完美,但我的JSON请求没有达到服务。看起来服务是从客户端接受JSON。我的网络客户端中有任何遗漏的东西。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var url='http://localhost:8080/AlpagoREST/rest/json/metallica/post2/';
inputString1 ="{\"location\":\"Location_trial\"}";
alert(url);
alert(inputString1);
$.postJSON = function(url, inputString1, callback) {
alert("reached here");
return jQuery.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=utf-8'
},
'type': 'POST',
'url': url,
'data': JSON.stringify(inputString1),
'dataType': 'json',
'success': callback
});
};
});
});
</script>
</head>
<body>
<button>Send an HTTP POST request to a page and get the result back</button>
</body>
</html>
当我使用postman Chrome插件向post服务发送post请求时,这非常有效,当我使用来自public static void main的Rest客户端发布Json时也是如此。
My web service is as below:
@POST
@Path("/post2")
@Consumes(MediaType.APPLICATION_JSON)
public Response trial(Trial_JSON tjson) {
System.out.println("reached here in post for Tjson");
System.out.println("Office Location="+tjson.getLocation());
String result="Mission done it looks";
return Response.status(200).entity(result).build();
}
-------
Trial_JSON是我的简单pojo类,如下所示。这里没有XML涉及它唯一的简单JSON而不是其他
public class Trial_JSON {
private String location;
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
答案 0 :(得分:0)
您正在创建postJSON
功能,但它看起来并不像您执行它。
$.postJSON = function(url, inputString1, callback) {
alert("reached here");
return jQuery.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=utf-8'
},
'type': 'POST',
'url': url,
'data': JSON.stringify(inputString1),
'dataType': 'json',
'success': callback
});
};
尝试使用
调用它$.postJSON(url, inputString1, function(data) {
console.log("Done posting");
});
答案 1 :(得分:0)
尝试进行以下两项更改:
inputString1 ='{"location":"Location_trial"}';
'data': inputString1,