我对jquery / ajax比较陌生,而且我从一个非常简单的JSON ajax调用解析结果时遇到了问题。这是我的code。此示例中有2个测试URL:注释的URL按预期工作,但未注释的URL不符合(根据jslint,它们都是格式正确的JSON)。知道为什么会抛出一个解析错误,另一个不会(它们都是第三方域)?
提前谢谢!
function getNews2() {
$.ajax({
//url: "http://api.ihackernews.com/page?format=jsonp",
url: "http://recs.coremetrics.com/iorequest/restapi?cm_cid=90232642&cm_zoneid=Mobile&cm_targetid=FULO-0101",
dataType: "jsonp",
success: function(data, textStatus, xhr) {
alert("SUCCESS recsStatus=" + textStatus);
alert(JSON.stringify(data));
},
error: function(data, textStatus, errorThrown) {
alert("FAILURE recsStatus=" + textStatus);
alert(JSON.stringify(data));
}
});
}
getNews2();
答案 0 :(得分:2)
在查看来自两个带有CURL的URL的响应后,不起作用的那个不是jsonp响应。这是一个json的回应。它没有包含在json p工作所需的方法调用中。
不起作用的是
{"io":{"rec_count":12,...}}
vs
HNCallback({"nextId":null,...})
看到区别?
由于原始策略相同,您将无法从任一URL获取纯json响应。因此,您需要使用CORS(如果您控制其他域)或jsonp,就像您当前配置使用的那样,或者服务器端代理。