-2

我需要使用以下结构访问 javascript 中的 json 对象:

jsonp1354291250080({
    "query":{"count":"1","created":"2012","lang":"en"},
    "results":["this is a test"]
});

我从在线服务接收这个对象,我无法控制它的结构并且使用data.query不起作用。

请如果有人知道如何访问它。

更新:我正在使用 James Padolsey https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/的 jquery.xdomainajax.js 并使用 jQuery 的 $.get() 函数来做跨域请求

4

1 回答 1

1

您使用的是JSONP服务,因为您位于不同的域中。您最好的选择是让jQuery 的 $.getJSON为您处理它。

如果 URL 包含字符串“callback=?” (或类似的,由服务器端 API 定义),请求被视为 JSONP。有关详细信息,请参阅$.ajax()中对 jsonp 数据类型的讨论。

该页面上的 JSONP 示例:

<!DOCTYPE html>
<html>
<head>
  <style>img{ height: 100px; float: left; }</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div id="images">

  </div>
<script>
  $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
    {
      tags: "mount rainier",
      tagmode: "any",
      format: "json"
    },
    function(data) {
        $.each(data.items, function(i,item){
        $("<img/>").attr("src", item.media.m).appendTo("#images");
        if ( i == 3 ) return false;
    });
  });
</script>

</body>
</html>
于 2012-11-30T17:27:39.453 回答