大家好,我正在尝试访问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);
答案 0 :(得分:1)
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数据。