2012-08-15 44 views
1

我已閱讀幾乎所有涉及此問題的帖子。大部分答案都是「使用JavaScript API」。我不認爲這是一個有效的答案。我試圖在Google的API控制檯上設置引用者,這樣我就可以在本地和我的開發服務器上進行測試。Places API不接受引用

這是從谷歌的API控制檯我的API密鑰: enter image description here

這是我的要求:

Request URL:https://maps.googleapis.com/maps/api/place/autocomplete/json?input=a&sensor=false&key=AIzaSyABBKjubUcAk69Kijktx-XXXXXXXXXX 
Accept:*/* 
Origin:http://localhost:5000 
Referer:http://localhost:5000/users/profile/edit/location/ 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1 

,我發現了著名的錯誤:

Origin http://localhost:5000 is not allowed by Access-Control-Allow-Origin. 

我也嘗試了「任何referer」API key,但沒有成功。 爲了允許這種AJAX調用,這個查閱器是不是被設置的? 我在Gunicorn服務器上運行Django應用程序,它可以是與'5000'端口相關的東西嗎?

回答

1

確定存在,應該工作的其他解決方案:

嘗試使用SSH隧道。

如果您使用localtunnel,安裝過程非常簡單。

  • 第1步:在您的終端
  • 步驟2執行命令sudo gem install localtunnel:任何端口上運行的本地Web服務器!假設您正在端口8080上運行Apache。
  • 第3步:現在運行localtunnel將端口傳遞給共享端口。第一次運行localtunnel時,你必須指向一個公共的SSH密鑰。如果您需要幫助,請查閱自述文件。

下面是一個例子: $ localtunnel -k ~/.ssh/id_rsa.pub 8080

您應該看到這樣的事情: 端口8080是現在從http://8bv2.localtunnel.com公開訪問...

現在你可以把這個URI到谷歌控制檯。

但請注意,當您使用此解決方案時,您的本地主機是公開可用的。

+0

我會嘗試一下並給出一些反饋。謝謝! – sgimeno 2012-08-16 09:59:44