JSON-P + RESTful API



菜鸟在这里。我不能不让我的警报显示此代码。有人可以指出我正确的方向,以便从 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"
    }
}

&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。此解决方案可能不适用于较旧的版本,但适用于较新的版本。

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

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

如何在jquery中调用外部url?

此链接将澄清所有内容。

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

请参阅我对相关问题的回答,以了解为什么您不应该考虑将 JSONP 与所谓的"RESTful"API 一起使用的详细信息。简而言之,请改用 CORS。

相关内容

  • 没有找到相关文章

最新更新