2011-07-11 53 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