我正在開發HTML5,jQuery Mobile的應用JSON Web服務。我必須使用第三方JSON Web服務來獲取數據。但是我在我的jquery函數中有parseerror。看來問題在於Web服務發送JSON。我必須使用JSONP,因爲它是跨域的。無論如何用jQuery或JavaScript來做到這一點。這是我正在使用的代碼。工作與使用jQuery
$.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);
});
請求去。答案也來了。但它說parseerror。我覺得這在JSON和JSONP方面有所不同。如果我將URL設置爲http://www.geonames.org/postalCodeLookupJSON?postalcode=10504&country=US&callback=?我的代碼工作正常沒有問題。第三方Web服務也正確,因爲所有的iphone應用都能正常工作。我看到的唯一區別是JSON以[{
開頭,JSONP以somefunction({
開頭。
的JSON是有效的。我使用一些在線工具進行了檢查,並且還有幾個iphone應用程序與該Web服務一起工作,沒有出現問題。看來我不能用jQuery解析它,因爲它們發送的是JSON而不是JSONP。如果我的想法不對,請糾正我。有什麼可能的解決方案呢?
謝謝你的答案。但它不起作用,因爲響應不在JSONP中。我必須指定回調,因爲它是第三方。 – 2012-04-25 07:31:16
如果你精確的回調,那麼它是在jsonp。或者我錯過了一些東西。 – 2012-04-25 07:32:32
是的。問題是Web服務僅提供JSON而不是JSONP。謝謝。 – 2012-04-25 07:48:23