2014-09-04 62 views
0

我想調用跨域URL。它具有如下的響應文本,並且它是有效的json響應。跨域jQuery ajax請求未被調用,並提供錯誤狀態「parsererror」

[{"LANG_CODE":"UK_EN","COU_ISO_CODE":"BGR"}, 
{"LANG_CODE":"UK_EN","COU_ISO_CODE":"HUN"}, 
{"LANG_CODE":"UK_EN","COU_ISO_CODE":"PRT"}, 
{"LANG_CODE":"UK_EN","COU_ISO_CODE":"UGA"}] 

Jquery ajax代碼,我用於調用交叉。

$.ajax({ 
    url: "http://someDomainName/restfulservice/Api/Countries/Get_Json", 
    dataType: 'jsonp', 
    crossDomain: true, 
    async: false, 
    success: function (data) { 
     alert("success >> "+data); 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert("error : "+errorThrown + ", textStatus >> "+textStatus); 
    }  
}); 

每當它進入錯誤塊。當我檢查瀏覽器中的這個服務的話,它通過代碼我收到錯誤"jQuery18305917718204907095_1409810925309 was not called, status: parsererror".

給出了有效的JSON string.but響應文本,而該代碼工作的網址http://api.geonames.org/findNearbyPlaceNameJSON?lat=47.3&lng=9&username=demo

這可能是什麼問題?

回答

0

它發送回JSON,但你說dataType: 'jsonp'。 JSON不是JSONP。

要麼改變服務支持JSONP或改變客戶的期望JSON(這可能需要你找到一些其他的方式來規避同源策略)

+0

@昆廷 - 這項服務在全球範圍內使用,所以我可以」不改變服務。如何爲客戶端做同樣的事情? – Sweety 2014-09-04 11:15:35