【发布时间】:2013-03-16 18:33:54
【问题描述】:
JS代码
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$.getJSON("http://localhost:8080/gbsshop/rest/auth/test/xyz?callback=?", function (data) {
alert("52");
});
</script>
</head>
</html>
REST 简单方法
@GET
@POST
@Path("/test/{param}")
@Produces({MediaType.APPLICATION_JSON })
public String returnMessage(@PathParam("param") String msg) {
System.out.println("~~~~~~~~~~~~~"+msg+"~~~~~~~~~~~~");
return "HEllo "+msg;
}
我看到服务器收到调用,但浏览器失败并显示“Uncaught SyntaxError: Unexpected Identifier”
感谢任何帮助。谢谢你的时间。
【问题讨论】:
-
因为它是一个 jsonp 请求,所以响应的格式应该是
<callback-name>({<jsonobject>}),例如:mycallback({msg: 'my-message'}) -
回调方法的名称可作为请求参数
callback -
真的吗? - 我认为“某人”会在后台处理这个问题。我认为您只需要从服务器发送 json 数据而不必将其包装在回调函数中。这会使我的代码在服务器上看起来很难看。我是否误解了您的评论,或者您真的是说我应该从我的 returnMessage 函数返回 - callbackName({result:"john"})?这不是不整洁吗?有没有更好的办法。我现在正在尝试你的建议。谢谢
-
@Mustafa 回调方法是 JSONP 的工作方式。你甚至需要 JSONP 吗?如果你的前端和 REST 服务在同一个域中,你可以使用普通的 JSON