我正在开发 HTML5、jQuery 移动应用程序。我必须使用第 3 方 JSON Web 服务来获取数据。但是我的 jquery 函数中有 parseerror。似乎问题在于 Web 服务发送 JSON。我必须使用 JSONP,因为它是跨域的。无论如何使用jQuery或javascript来做到这一点。这是我正在使用的代码。
$.ajax({
url : jsonServiceURL + "scheduleService/retrieveMySchedules.json?callback=?",
dataType : "json",
beforeSend: function(x) {
if(x && x.overrideMimeType) {
x.overrideMimeType("application/json;charset=UTF-8");
}
},
timeout : 5000
}).success(function() {
alert('pass');
}).error(function(httpObj, textStatus) {
alert(textStatus);
});
请求去了。回应也来了。但它说解析错误。我觉得这在 JSON 和 JSONP 中有所不同。如果我将 URL 设置为类似http://www.geonames.org/postalCodeLookupJSON?postalcode=10504&country=US&callback=?我的代码工作正常,没有问题。第 3 方网络服务也正确,因为所有 iphone 应用程序都可以正常工作。我看到的唯一区别是 JSON 以 . 开头,[{
而 JSONP 以somefunction({
.
JSON 是有效的。我使用一些在线工具对其进行了检查,并且有几个 iPhone 应用程序可以与该 Web 服务一起使用而没有问题。似乎我无法用 jquery 解析它,因为它们发送的是 JSON 而不是 JSONP。如果我的想法是错误的,请纠正我。对此有哪些可能的解决方案?