我正在使用以下代码来访问托管在另一个域上的休息服务。
$.ajax({
type: 'GET',
url: url,
async: false,
jsonpCallback: 'jsonCallback',
contentType: "application/json",
dataType:"jsonp",
success: function(json) {
alert(json);
},
error: function(e) {
console.log(e.message);
}
});
我能够正确获取数据,但是我在 Mozilla 的火虫中收到此错误:
语法错误: 缺少 ; 在语句之前
{"你好":"世界"}
谁能告诉我我在这里做错了什么?即使 Json 数据有效。我尝试了这个问题中发布的所有建议,但我仍然遇到同样的错误。
是你要求的 JSON,不要"jsonp"
设置为 dataType
,也不要提供回调:
$.ajax({
type: 'GET',
url: url,
contentType: "application/json",
success: function(json) {
alert(json);
},
error: function(e) {
console.log(e.message);
}
});
和 JSON 的格式略有不同JKSONP 是一个函数调用表达式
callback({"hellow":"world"});
而 JSON 只是一个序列化对象
{"Hello":"world"}
从您的帖子来看,服务器似乎返回的是 JSON 而不是 JSONP
因此,您要么需要更改服务器才能正确回复(实际回调名称是请求的 get 参数)。如果跨域使用 ajax 调用,则应执行此操作
如果您没有跨域使用 ajax,请坚持使用常规 JSON