我正在尝试使用以下jQuery调用对我的服务器进行Ajax 调用:
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://iceworld.sls-atl.com/api/&cmd=time",
success: function (data) {
console.log("success");
console.log(data);
},
error: function (error) {
console.log("error");
console.log(error);
},
});
Run Code Online (Sandbox Code Playgroud)
我从浏览器中获取了我期望的数据,但Firebug一直说"SyntaxError:invalid label",如下所示:

所以,让我感到困惑的是调用错误回调而不是成功的原因.我想知道我在这里做错了什么.
必须以以下格式返回JSONP数据:callback( jsonObject ).这就是你收到invalid label错误的原因.它期待一个函数,而不是一个JSON对象.您需要修改服务器代码以使用回调函数的名称包装返回值.当您请求JSONP时,jQuery会自动将名称添加到请求中.如果您观看请求,您应该看到如下内容:
http://iceworld.sls-atl.com/api/&cmd=time?callback=jQuery191035087670385837555_1365126604422&_=1365126604423
Run Code Online (Sandbox Code Playgroud)
您的脚本需要获取callback参数并使用它来包装数据,因此对于此示例,它将如下所示:
jQuery191035087670385837555_1365126604422({"status":1,"data":"1365126534"})
Run Code Online (Sandbox Code Playgroud)
如果您从同一个源访问服务器,则可以简单地使用JSON.