SyntaxError:missing; 在声明jquery jsonp之前

我使用下面的代码来访问托管在另一个域上的rest服务。

$.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中的firebug中得到了这个错误:

SyntaxError:missing; 在声明之前

{“你好,世界”}

谁能告诉我我在这里做错了什么? 即使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和JSONP的格式略有不同JKSONP是一个函数调用表达式

 callback({"hellow":"world"}); 

而JSON只是一个序列化对象

 {"Hello":"world"} 

从你发布它似乎服务器返回JSON而不是JSONP

因此,您需要更改服务器以正确回复(实际的回调名称是请求的get参数)。 如果您跨域使用ajax调用,则应该执行此操作

如果你没有跨域使用ajax坚持常规JSON