ajax - 为跨域配置google app engine应用

标签 ajax google-app-engine cross-domain

能否请您指教,我们如何配置托管在 Google App Engine 上的 Python 应用程序,以接受从浏览器完成的来自 AJAX 的 OPTIONS、GET、POST、PUT 和 DELETE?

此类调用的细节是 XmlHTTPRequest 首先向服务器发出 OPTIONS 请求,以查看允许哪些跨域动词,如果需要,列表中有一个 - 浏览器随后执行此请求。

现在我们只收到 405 Method Not Allowed 尝试浏览器执行 OPTIONS 请求。

AJAX 调用是从另一个站点/域完成的。

谢谢,

罗马语。

最佳答案

一种绕过 same-origin policy 的方法允许浏览器跨域请求采用 JSONP但是 AFAIK,它只支持 GET动词;事实上,这是一个获取 src 的 GET 请求。的 <script>在 DOM 文档中注入(inject)标签

如果 JSONP 不是一个选项,更现代的方法是使用 CORS ,将 Access-Control-Allow-Origin Http header 添加到响应 *:

Python 中:

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

Java 中:

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

* 检查浏览器兼容性 here

关于ajax - 为跨域配置google app engine应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6653701/

相关文章:

python - channel API 存在未触发

node.js - 使用 Node 代理 http 请求

javascript - 跨域发送大数据到服务器

javascript - 使用 JavaScript 发出跨站点请求的最佳方式?

javascript - 在 JavaScript 加载期间是否可以访问文件的一部分?

javascript - Jquery ajax 按钮单击事件触发两次?

javascript - Ajax POST 返回成功,但不更新 JSON 文件

javascript - Laravel 向 js 传递路由

java - 如何使用 pojo 从数据存储中检索实体?

java - 对象化 : Use an entity key juste created