2016-09-08 49 views
2

嗨,大家好我收到一個小錯誤,當我嘗試訪問foursquare API以查找有關特定餐廳的信息時,我正在搜索中。foursquare請求錯誤加載

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

是我看到的另一件事是,當我把他的網址,看看會發生什麼吧,我得到的是,頁面上會出現一些瘋狂的代碼搜索INT ..

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
  1. 你越來越瘋狂的代碼是「你有什麼REQ因爲'這是來自foursquare api的原始json響應。

2.It工程對URL但不是在腳本,因爲當你在你的客戶站點上運行腳本,你正在嘗試未通過一些API出於安全考慮,允許跨域資源共享(CORS)。 要解決此問題,您需要使用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數據更好的主意得到的第一個地點的名稱。