无法分析来自jquery Ajax调用的JSON响应
我对jquery/ajax比较陌生,在解析一个非常简单的JSON-ajax调用的结果时遇到困难。这是我的。在这个例子中有两个测试URL:注释的URL按预期工作,但未注释的URL不工作(根据jslint,它们都是格式正确的JSON)。知道为什么一个会抛出解析错误,而另一个不会(它们都是第三方域)吗 提前谢谢你无法分析来自jquery Ajax调用的JSON响应,jquery,ajax,json,Jquery,Ajax,Json,我对jquery/ajax比较陌生,在解析一个非常简单的JSON-ajax调用的结果时遇到困难。这是我的。在这个例子中有两个测试URL:注释的URL按预期工作,但未注释的URL不工作(根据jslint,它们都是格式正确的JSON)。知道为什么一个会抛出解析错误,而另一个不会(它们都是第三方域)吗 提前谢谢你 function getNews2() { $.ajax({ //url: "http://api.ihackernews.com/page?format=jsonp",
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();
在使用CURL查看了两个URL的响应之后,不起作用的不是jsonp响应。这是一个json响应。它没有封装在json p工作所需的方法调用中 不起作用的是
{“io”:{“rec_count”:12,…}
vs
HNCallback({“nextId”:null,…})
看到区别了吗
由于同源策略,您将无法从任一URL获得纯json响应。因此,您需要使用CORS(如果您控制其他域)或jsonp,就像您当前配置使用的一样,或者服务器端代理。感谢您的响应。请原谅我的无知,但是没有办法将json(从网络请求)转换为格式正确的jsonp响应吗?我认为“dataType(json jsonp);”可以做到这一点,或者可能使用dataFilter选项?不。由于同源策略,您甚至无法获取json数据。因此,如果结果不是跨域请求的jsonp,则不可能……感谢您的帮助!好的,我现在试着在浏览器限制的范围内工作,我接受了我的JSON响应,将其保存为第三方站点上的JSONP文件(添加了回调函数),但它仍然不工作。最初的Fiddler只是通过我的轻微更改进行了更新(这纯粹是更改了指向JSONP文件的URL)。如果响应是JSONP,为什么这个工作不象工作URL(是因为它是一个文件资源而不是一个web服务?)?浏览器不会发出请求。阅读关于同一原产地的政策