0

菜鸟在这里。我无法让我的警报显示此代码。有人可以为我指出正确的方向以从 json 提要中提取此信息吗?提前致谢。

<html>
<head>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js">    </script>
<title>Test</title>
</head>
<body>
<script type="text/javascript">
jQuery.getJSON("http://api.shoplocal.com/api/2012.1/json/getpromotions.aspx?campaignid=86107c2cdcc39561&citystatezip=46225" + "&campaignid=",         function(feed) {
    alert("Symbol: " + feed.content.collection.data.image);
});
</script></body>
</html> 

这是 JSON:

{
    "content": {
        "collection": {
            "data": {
                "code": "RC-130127",
                "customimagedescription": "",
                "customimagelocation": "",
                "displayorder": "0",
                "featuredpromotion": "N",
                "identifier": "01\/27 Circular",
                "image": "http:\/\/akimages.shoplocal.com\/dyn_rppi\/140.0.90.0\/RobertsCamera\/large\/130127_Pg1_cqu82.jpg",
                "postenddate": "2\/2\/2013 12:00:00 AM",
                "poststartdate": "1\/27\/2013 12:00:00 AM",
                "previewenddate": "",
                "previewstartdate": "",
                "promotionchildtypeid": "",
                "promotionchildtypename": "",
                "promotionid": "85347",
                "promotionmessage": "",
                "retailerid": "12847",
                "retailername": "Roberts Camera",
                "saleenddate": "2\/2\/2013 12:00:00 AM",
                "salestartdate": "1\/27\/2013 12:00:00 AM",
                "tag": "RC-130127",
                "title": "01\/27 Circular",
                "typeid": "1",
                "vo": "promotion"
            },
            "vo": "promotion"
        },
        "date": "1\/30\/2013 12:28:52 PM"
    }
}
4

3 回答 3

1

添加&callback=?到 URL 的末尾以触发 JSONP,否则您将收到 XMLHttpRequest 跨域错误:

$.getJSON("http://api.shoplocal.com/api/2012.1/json/getpromotions.aspx?campaignid=86107c2cdcc39561&citystatezip=46225&campaignid=&callback=?",
               function(feed) {
    alert("Symbol: " + feed.content.collection.data.image);
});

有关更多信息,请参阅 getJSON 文档的JSONP 部分

我还刚刚注意到您正在使用 jQuery v1.3.2。此解决方案可能不适用于旧版本,但适用于较新版本

于 2013-01-30T18:28:21.767 回答
0

由于安全原因,您无法在应用程序域之外使用 Ajax 功能(如(getJSON、ajax、post、get))调用资源。

查看您的 javascript 控制台以查看问题。

如何在 jquery 中调用外部 url?

这个链接将澄清一切。

http://en.wikipedia.org/wiki/Same_origin_policy

于 2013-01-30T18:26:44.920 回答
0

See my answer to a related question for details as to why you should not be considering JSONP for use with supposedly "RESTful" APIs. In short, use CORS instead.

于 2013-01-31T10:30:21.693 回答