2011-07-11 49 views
4

您可以請指教,我們如何配置我們在Google App Engine上託管的Python應用程序接受來自瀏覽器的AJAX的OPTIONS,GET,POST,PUT和DELETE?配置谷歌應用程序引擎應用程序的跨域

這樣的調用的細節是XmlHTTPRequest,首先請求服務器OPTIONS請求查看哪些跨域動詞是允許的,如果需要的話可以在列表中找到 - 瀏覽器隨後執行此請求。

現在我們剛剛得到一個405方法不允許試圖瀏覽器做OPTIONS請求。

AJAX調用正在從另一個站點/域進行。

謝謝,

羅馬。

+0

您在使用Java或Python?什麼框架? –

回答

5

一種繞過same-origin policy允許瀏覽器跨域請求的方式是採用JSONP但AFAIK,它只支持GET動詞;事實上,這是一個GET請求來檢索<script>標籤在DOM文檔

注入的src如果JSONP是不是一種選擇,一個更現代的方法是使用CORS,加入訪問控制允許來源 HTTP標頭到響應*

的Python

self.response.headers['Access-Control-Allow-Origin'] = '*' 

爪哇

resp.setHeader("Access-Control-Allow-Origin", "*"); 

*檢查瀏覽器的兼容性here

+1

那麼,JSONP不是我們的選擇,只要我們在將「Vary:Origin」頭添加到響應後得到它,JSON就可以正常工作。謝謝。 – Roman

+0

@羅曼 - 你是如何解決這個問題的? – Ben