Access-Control-Allow-Origin 不允许 Yelp API Origin http://localhost:8888 [英] Yelp API Origin http://localhost:8888 is not allowed by Access-Control-Allow-Origin

查看:28
本文介绍了Access-Control-Allow-Origin 不允许 Yelp API Origin http://localhost:8888的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用以下代码,我在使用 Chrome 的 JavaScript 开发者控制台的问题标题中得到错误:

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

完整的错误是:XMLHttpRequest cannot load http://api.yelp.com/business_review_search?term=starbucks&location=Urbana%20IL&limit=3&ywsid=XXX.Access-Control-Allow-Origin 不允许使用 http://localhost:8888.

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.

我使用 MAMP 作为我的本地主机.

I'm using MAMP as my localhost.

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

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

推荐答案

看起来您正在使用 jQuery.jQuery 的 ajax 调用提供的数据类型的 'jsonp' 选项是一个更优雅的解决方案,作为一个简短的例子:

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

这篇关于Access-Control-Allow-Origin 不允许 Yelp API Origin http://localhost:8888的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆