无法解析来自jquery Ajax Call的JSON响应

时间:2012-01-13 17:58:09

标签: jquery ajax json

我对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();

1 个答案:

答案 0 :(得分:2)

在查看来自两个带有CURL的URL的响应后,不起作用的那个不是jsonp响应。这是一个json的回应。它没有包含在json p工作所需的方法调用中。

不起作用的是

{"io":{"rec_count":12,...}}

vs

HNCallback({"nextId":null,...})

看到区别?

由于原始策略相同,您将无法从任一URL获取纯json响应。因此,您需要使用CORS(如果您控制其他域)或jsonp,就像您当前配置使用的那样,或者服务器端代理。