嗨我有一个大问题。我必须得到一些JSON表格localhost:8080。jQuery.ajax响应为空或未定义
服务器端是基于restful的jax-rs服务器。
@Path("/m")
public class M {
@GET
@Path("{id: [a-z]{1,4}-\\d{1,4}}")
@Produces("application/json")
public Response getCar (@PathParam("id") final String id) {
final ResponseBuilder builder;
builder = Response.ok("{\"one\":\"bla\"}");
return builder.build();
}
}
对于同源策略,我有以下脚本上本地主机: '?回调=' 8080/JS /的script.js
function test (file) {
$.ajax({
type: 'GET',
url: file + '?callback=?',
dataType: 'json',
success: function (data) {
alert('works');
}
});
}
我不喜欢部分,但没有这个响应是空的(HTTP-Body)。
现在的问题是,成功的方法永远不会执行。当我将dataType更改为“脚本”时,该方法将被调用,但传递的参数(数据)未定义。那么我做错了什么?
发布你的服务器端代码+通过两个“?”是个不错的主意。在参数 – Bob 2010-09-10 14:48:13
如果您使用JSONP,'?callback =?'是正确的。 – 2010-09-10 14:49:59
@Byron Cobb,这是正确的,但不是在这种情况下。第二个'?'被jQuery用来提供一个动态的回调函数。在向服务器发出请求之前,它将替换为该函数的名称。 – 2010-09-10 14:51:10