Jquery 为什么';这不是工作-jsonp和休息轻松吗?
JS代码 我看到服务器收到了调用,但浏览器失败,出现“未捕获的语法错误:意外标识符”Jquery 为什么';这不是工作-jsonp和休息轻松吗?,jquery,jsonp,resteasy,Jquery,Jsonp,Resteasy,JS代码 我看到服务器收到了调用,但浏览器失败,出现“未捕获的语法错误:意外标识符” 感谢您的帮助。感谢您的时间。注意:这是在应用程序中执行此操作最糟糕的方法,您需要检查可能提供的框架支持。这只是演示如何添加jsonp支持 我不知道,放松点,我要在这里做一个大的猜测 @GET @POST @Path("/test/{param}") @Produces({MediaType.APPLICATION_JSON }) public String returnMessa
感谢您的帮助。感谢您的时间。注意:这是在应用程序中执行此操作最糟糕的方法,您需要检查可能提供的框架支持。这只是演示如何添加jsonp支持 我不知道,放松点,我要在这里做一个大的猜测
@GET
@POST
@Path("/test/{param}")
@Produces({MediaType.APPLICATION_JSON })
public String returnMessage(@PathParam("param") String msg) {
System.out.println("~~~~~~~~~~~~~"+msg+"~~~~~~~~~~~~");
return "HEllo "+msg;
}
然后
实际上,您必须同时支持json和jsonp请求,因此您可能需要
$.getJSON("http://localhost:8080/gbsshop/rest/auth/test/xyz?callback=?", function (data) {
alert(data.msg);
});
3.x版本中的Resteasy开箱即用:
如果您使用的是Jackson,Resteasy有一个可以打开的JSONP
添加提供程序
org.jboss.resteasy.plugins.providers.jackson.JacksonJsonpInterceptor
(如果使用Jackson2提供程序,则使用Jackson2JsonpInterceptor)来
您的部署。如果响应的媒体类型是json和
如果给定回调查询参数,则响应将是javascript
具有回调所定义方法的方法调用的代码段
参数例如:
GET/resources/stuff?callback=processStuffResponse将生成此
答复:
processStuffResponse()这支持默认设置
jQuery的行为
您可以通过设置
callbackQueryParameter属性
然而,它似乎是由于
所以
foo({“foo”:“bar”}
被渲染而不是
foo({“foo”:“bar})
这会导致“未捕获的SyntaxError:意外标识符”错误
我已经提交了一个带有补丁的版本,希望它能进入下一个版本3.0.12
我知道这个问题已经很老了,但是当你搜索resteasy jsonp问题时,它会显示在Google的第一页上,所以我决定更新它,因为它是一个jsonp请求,响应的格式应该是
({})
,例如:mycallback({msg:'mymessage})
callback方法的名称可以作为requestparameter使用callback
真的吗?-我想是“某人”在后台处理。我认为您只需要从服务器发送json数据,而不必将其包装在回调函数中。这会使我的代码在服务器上看起来很难看。我是否误解了您的评论,或者您的意思是我应该返回-callbackName({result:“john”})-从我的返回消息功能?这不是不整洁吗?有没有更好的方法。我正在尝试你的建议。Thanks@Mustafa回调方法就是JSONP的工作方式。你甚至需要JSONP吗?如果你的前端和REST服务在同一个域上,你可以使用简单的旧JSONP。我正在尝试这个Arun的可能的副本。但是我非常喜欢c更精简的服务器端代码。还有其他建议吗?谢谢。@Arun我怀疑这是否可行。问题是框架可能会尝试使用类似JSON库的JSON库来转换字符串结果。上面提到的重复问题有更好的解决方案。Phil我也在检查。谢谢
@GET
@POST
@Path("/test/{param}")
@Produces({MediaType.APPLICATION_JSON })
public String returnMessage(@PathParam("param") String msg, @QueryParam("callback") String callback) {
System.out.println("~~~~~~~~~~~~~"+msg+"~~~~~~~~~~~~");
return callback + "({msg: \"" + msg + "\"})";
}
$.getJSON("http://localhost:8080/gbsshop/rest/auth/test/xyz?callback=?", function (data) {
alert(data.msg);
});
@GET
@POST
@Path("/test/{param}")
@Produces({MediaType.APPLICATION_JSON })
public String returnMessage(@PathParam("param") String msg, @QueryParam("callback") String callback) {
System.out.println("~~~~~~~~~~~~~"+msg+"~~~~~~~~~~~~");
if (callback == null || callback == "") {
return "{msg: \"" + msg + "\"}";
} else {
return callback + "({msg: \"" + msg + "\"})";
}
}