我想创建一个REST Jersey Web-Service,接受JSON字符串作为输入参数。
此外,我将使用post请求,并从webmethod返回一个JSON字符串。
如何使用Ajax post请求在HTML页面中使用它。我想知道在web方法上需要做哪些更改才能接受JSON字符串。
public class Hello {
@POST
public String sayPlainTextHello() {
return "Hello Jersey";
}
}发布于 2013-01-31 18:11:40
需要分解你的请求。首先,您希望接受一个JSON字符串。所以在你的方法上你需要
@Consumes(MediaType.APPLICATION_JSON)接下来,您需要决定您希望您的方法获得什么。您可以按照您的建议获取JSON字符串,在这种情况下,您的方法将如下所示:
@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {或者,如果您的JSON字符串映射到一个Java对象,您可以直接获取该对象:
@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final MyObject input) {您声明要返回一个JSON字符串。因此,您需要:
@Produces(MediaType.APPLICATION_JSON)然后您需要实际返回一个JSON字符串:
return "{\"result\": \"Hello world\"}";因此,您的完整方法如下所示:
@PATH("/hello")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {
return "{\"result\": \"Hello world\"}";
}关于使用AJAX发送和接收,它看起来像这样:
var myData="{\"name\": \"John\"}";
var request = $.ajax({
url: "/hello",
type: "post",
data: myData
});
request.done(function (response, textStatus, jqXHR){
console.log("Response from server: " + response);
});发布于 2013-01-31 17:48:05
这将会起作用。" path“是AJAX调用中使用的相对URL路径。
public class Hello {
@POST
@Path("/path")
@Produces({ "text/html" })
public String sayPlainTextHello() {
return "Hello Jersey";
}}
https://stackoverflow.com/questions/14622531
复制相似问题