加载

时间:2016-09-08 05:48:27

标签: javascript foursquare

大家好,我正在尝试访问foursquare api以查找有关我在搜索中的特定餐馆的信息时收到一个小错误。

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

我看到的另一件事是,当我把搜索结果放在网址上时,我会看到出现的内容,我会在网页上看到一些疯狂的代码。

the http request results from the browser

这是我现在的代码......

var fourSquareMain = 'https://api.foursquare.com/v2/venues/search';
var clientID = '?client_id=5LHFTY54EP5VLMYIIVZ0OQGMNZQEM2FUKDPFFA2OJHMO0AVI';
var clientSecret = '&client_secret=2TN3GQBAX4U2GPHGMCUZWS35Y2E5E2Y4NG0YWGVGNMXEPHAW';
var fourSquareVersion = '&v=20130815';
var fourSquareLL = '&ll=' + pointItem.lat() + ',' + pointItem.lng();
var fourSquareQuery = '&query=' + pointItem.name;

var fullFourSquareQuery = fourSquareMain + clientID + clientSecret + fourSquareVersion + fourSquareLL + fourSquareQuery;

var finalFSQuery = fullFourSquareQuery.replace(/ /g, '-');

console.log(finalFSQuery);

1 个答案:

答案 0 :(得分:1)

  1. 您获得的疯狂代码是您所要求的'这是来自foursquare api的原始json响应。
  2. 2.它适用于URL,但不适用于脚本,因为当您在客户端站点上运行脚本时,您正在尝试跨源资源共享(CORS),出于安全原因,某些API不允许这样做。 要解决此问题,您需要使用JSON-P,这是一种允许跨域请求的独特技巧。 一个简单的方法是使用jQuery创建AJAX请求。 在您的情况下,尝试从搜索结果中获取第一个地点的名称

    var fourSqrUrl = "https://api.foursquare.com/v2/venues/search?ll=40.7,-74&client_id=XXX&client_secret=YYY&v=20160128"
           $.ajax({
                  url: fourSqrUrl,
                  success: function(data) {
                    $(div1).html('FourSquare Response : ' + data.response.venues[0].name);
                    }
                  });
    

    ` 您可能需要阅读一些关于AJAX的内容,以便更好地了解其工作原理以及如何读取json数据。