0

ここにnoob。このコードでアラートを表示できません。誰かが私を正しい方向に向けて、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

URL の末尾に追加&callback=?して 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

おそらく「RESTful」APIでJSONPを使用することを検討すべきではない理由の詳細については、関連する質問に対する私の回答を参照してください。つまり、代わりに CORS を使用してください。

于 2013-01-31T10:30:21.693 に答える
0

セキュリティ上の理由により、(getJSON、ajax、post、get) などの Ajax 機能を使用してアプリケーションのドメイン外でリソースを呼び出すことはできません。

問題を確認するには、JavaScript コンソールを見てください。

jqueryで外部URLを呼び出す方法は?

このリンクはすべてを明確にします。

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

于 2013-01-30T18:26:44.920 に答える