Происхождение API Yelp http://localhost:8888 не разрешено Access-Control-Allow-Origin - PullRequest
4 голосов
/ 30 сентября 2010

Используя следующий код, я получаю сообщение об ошибке в заголовке этого вопроса, используя консоль разработчика 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. Origin http://localhost:8888 не разрешен Access-Control-Allow-Origin.

Я использую MAMP в качестве локального хоста.

Это проблема с Yelp, блокирующим доступ API к localhost, или в моем коде есть ошибка?

1 Ответ

1 голос
/ 06 декабря 2011

Похоже, вы используете jQuery.Опция 'jsonp' для типа данных, предоставляемого вызовом jQuery ajax, является более элегантным решением, например,

$.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
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...