2013-03-10 94 views
0

我正在實施(我試圖實現)一個100%的客戶端AngularJS網絡應用程序,它應該訪問谷歌日曆API。當然,這並不工作,因爲我打的跨域問題:從AngularJS訪問Google Calendar API APP

XMLHttpRequest cannot load http://... . Origin http://localhost:9000 is not allowed by Access-Control-Allow-Origin. 

有什麼解決辦法繞過這個問題,除了創建代理?通過設置一些標題或更改一些谷歌配置?我沒有看到一個...

+0

您使用的是哪種版本的Google Calendar API?對於v3,請查看http://stackoverflow.com/a/11622475/180740(用於JS的Google API客戶端庫,以減輕OAuth的痛苦),並在頂部添加一些優點。 – 2013-03-10 18:11:09

回答

0

偉大的提示菲利普! google javascript api客戶端(see here)完成這項工作。

但我想知道:谷歌JavaScript API客戶端如何繞過跨域問題?有人知道嗎?

+0

SOP只會阻止讀取訪問(例如cookie),其他域的腳本仍然可以寫入。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS – Porlune 2016-02-20 09:22:00

0

您需要使用谷歌瀏覽器端才能將正確的標題Access-Control-Allow-Origin返回給您的瀏覽器,以免引起跨瀏覽器問題。

確保在谷歌雲控制檯配置正確的Web應用程序。我假設網絡應用程序,因爲重定向雖然。

如果它的phoneapp或不在localhost上提供任何服務:9000重定向端點還有其他選項。例如,您可以在另一個窗口中打開oauth重定向,仍然使用localhost:9000作爲重定向。即使您不在該端口上偵聽,您仍然可以獲取從父窗口重定向時設置的url代碼或錯誤。

0

CORS是您在通過Web瀏覽器運行應用程序時遇到的問題。我建議你在谷歌瀏覽器上下載一個CORS切換擴展程序,這樣你可以關閉CORS並且API將連接。祝你好運!