Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法分析来自jquery Ajax调用的JSON响应_Jquery_Ajax_Json - Fatal编程技术网

无法分析来自jquery Ajax调用的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",

我对jquery/ajax比较陌生,在解析一个非常简单的JSON-ajax调用的结果时遇到困难。这是我的。在这个例子中有两个测试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();

在使用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服务?)?浏览器不会发出请求。阅读关于同一原产地的政策