Access-Control-Allow-Origin不允许使用Yelp API Origin http:// localhost:8888

时间:2010-09-30 03:58:38

标签: api getjson access-control

使用以下代码,我使用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;
  });
 });

完整,错误是:XMLHttpRequest无法加载http://api.yelp.com/business_review_search?term=starbucks&location=Urbana%20IL&limit=3&ywsid=XXX。 Access-Control-Allow-Origin不允许原点http://localhost:8888

我正在使用MAMP作为我的本地主机。

这是Yelp阻止API访问本地主机的问题,还是我的代码中有错误?

1 个答案:

答案 0 :(得分: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
    }
});