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