4

次のコードを使用すると、Chrome の JavaScript 開発者コンソールを使用して、この質問のタイトルにエラーが表示されます。

    jQuery.getJSON("http://api.yelp.com/business_review_search?term=starbucks&location=Urbana%20IL&limit=3&ywsid=XXX",
 function(data){
  jQuery.each(data, function(i,businesses){   
   jQuery("#yelpPreview").append(businesses.url);
   if ( i == (amount - 1) ) return false;
  });
 });

完全に、エラーは次のとおりです。オリジンhttp://localhost:8888は Access-Control-Allow-Origin で許可されていません。

ローカルホストとして MAMP を使用しています。

これは、Yelp がローカルホストへの API アクセスをブロックしているという問題ですか、それとも私のコードにエラーがありますか?

4

1 に答える 1

1

jQueryを使用しているようです。簡単な例として、jQuery の ajax 呼び出しによって提供されるデータ型の 'jsonp' オプションは、これに対するより洗練されたソリューションです。

$.ajax({
    url      : 'http://api.yelp.com/business_review_search',
    dataType : 'jsonp',
    data     : {term : 'restaurant', lat : xxx, long : xxx}, // callback is not necessary
    success  : function(data) {
        // data is a normal response shown on yelp's API page
    }
});
于 2011-12-05T22:06:23.243 に答える