我正在尝试调用跨域网址。它的响应文本如下所示。它是有效的json响应。
[{"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"}]
我用来调用cross的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);
}
});
每次进入错误块。当我在浏览器中检查此服务时,它会给出带有效json字符串的响应文本。但是通过代码我收到错误"jQuery18305917718204907095_1409810925309 was not called, status: parsererror".
此代码适用于网址“http://api.geonames.org/findNearbyPlaceNameJSON?lat=47.3&lng=9&username=demo”。
可能是什么问题?
答案 0 :(得分:0)
它正在发回JSON,但您已经说过dataType: 'jsonp'
。 JSON不是JSONP。
更改服务以支持JSONP或更改客户端以期望JSON(可能需要您找到其他方法来绕过相同的源策略)