Access-Control-Allow-Origin 不允许 Yelp API 来源 http://localhost:8888

发布于 2024-09-25 04:34:25 字数 847 浏览 6 评论 0原文

使用以下代码,我使用 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 访问本地主机的问题,还是我的代码中有错误?

Using the following code, I get the error in the title of this question using Chrome's JavaScript developer console:

    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;
  });
 });

In full, the error is: XMLHttpRequest cannot load http://api.yelp.com/business_review_search?term=starbucks&location=Urbana%20IL&limit=3&ywsid=XXX. Origin http://localhost:8888 is not allowed by Access-Control-Allow-Origin.

I'm using MAMP as my localhost.

Is this an issue with Yelp blocking API access to a localhost, or is there an error in my code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

汹涌人海 2024-10-02 04:34:25

看起来您正在使用 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
    }
});

Looks like you are using jQuery. The 'jsonp' option for datatype provided by jQuery's ajax call is a more elegant solution to this, as a short example:

$.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
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文