-1

我正在尝试 使用 jsonp从http://www.ikea.com/us/en/catalog/products/10176292获取一些文本。

为了测试它是否有效,这就是我所做的

$.getJSON("http://www.ikea.com/us/en/catalog/products/10176292?format=json&jsoncallback=?",function(data) {
$('h1').text(data.modified);
}); 

这不起作用,所以它可能无效,但我在谷歌上找到的所有 jsonp 文档都使用 twitter 或 flickr API 作为示例。我很确定宜家没有 API,所以这些方法对我没有帮助。

但是,这确实有效并从 flickr 返回文本

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=25053835@N03&format=json&jsoncallback=?",function(data) {
$('h1').text(data.title);
});

我正在尝试这个,因为我看到了这个例子http://www.foxycart.com/whos-using-foxy/case-studies/modernash它似乎与 jsonp 从宜家获取文本数据一起使用。我不需要任何复杂的东西,只需要能够检索一些简单的文本。

有人可以指出我正确的方向或提供一些提示。

谢谢

4

4 回答 4

0

宜家的链接不是 JSON,因此您无法从中提取。宜家似乎没有公共 API。因此,您将无法从他们那里获取任何数据以供使用。

对于 Flickr,您走在正确的轨道上。这是你如何做到的。

$.ajax({
    dataType: 'jsonp',
    url: 'http://api.flickr.com/services/feeds/photos_public.gne?id=25053835@N03&format=json&jsoncallback=?',
    success: function(data){
        console.log(data);
    } 
});

如果你想得到标题,你会做 data.title 等等。

于 2013-01-10T14:05:34.193 回答
0

您可能需要提供一些自定义标题。Wireshark 是你的朋友

于 2013-09-26T14:56:07.240 回答
0

在我看来,他们只是从网站上抓取数据。所有产品信息都存储在 html 中,他们将其添加到自己的购物车中的对象中。

由于您将图像拖到他们的书签中,我查看了图像中存储的数据@http : //www.ikea.com/us/en/catalog/products/20011408/#/80193735

<img id="productImg" src="/us/en/images/products/lack-side-table__0115088_PE268302_S4.JPG" border="0" alt="LACK Side table IKEA The high-gloss surfaces reflect light and give a vibrant look. Easy to assemble. Low weight; easy to move." title="LACK Side table - high gloss red, 21 5/8x21 5/8 &quot; - IKEA" width="500" height="500" class="mn_global_shadow ui-draggable" style="width: 244px; display: inline-block; height: 244px; left: 0px; top: 0px;">

在标题中,我们得到名称、饰面、颜色和尺寸。
价格和数量保存在整个网站上似乎是标准的 id/class 中。

除了我没有看过之外,它是如何运作的,但它似乎并不太复杂。希望这可以帮助。

于 2013-01-22T20:07:38.777 回答
0

您可以使用 ajax 补充您的 getJSON(请参阅此处的官方文档 - http://api.jquery.com/jQuery.getJSON/),然后声明 JSONP 非常容易。

    $.ajax({
      dataType: "jsonp",
      url: 'http://api.flickr.com/services/feeds/photos_public.gne?id=25053835@N03&format=json&jsoncallback=?',
      data: data,
      success: function( data ) {
            $('h1').text(data.modified);
       });

编辑:@Matt Ball 是对的。在您使用类似上面的 ajax 调用之前,您需要确保您使用的 URL 返回实际的 json。您应该能够导航到所需的 URL 并查看原始 JSON。然后上面的所有函数都会做相应的获取和解析。

于 2013-01-10T14:00:42.253 回答