配置Google App Engine应用程序以进行跨域

发布于 2024-11-19 15:12:19 字数 311 浏览 1 评论 0原文

您能否建议我们如何配置托管在 Google App Engine 上的 Python 应用程序以接受从浏览器完成的 AJAX 选项、GET、POST、PUT 和 DELETE?

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

现在,在浏览器尝试执行 OPTIONS 请求时,我们刚刚收到 405 Method Not allowed 错误。

AJAX 调用是从另一个站点/域进行的。

谢谢你,

罗曼。

Could you please advise, how we can configure our Python app hosted on Google App Engine to accept the OPTIONS, GET, POST, PUT and DELETE from AJAX being done from browser?

The specifics of such calls are XmlHTTPRequest first does OPTIONS request to the server to see what cross-domain verbs are allowed and if desired one is in the list - browser does this request afterwards.

Right now we just get a 405 Method Not Allowed in attempt of browser to do OPTIONS request.

AJAX calls are being done from another site/domain.

Thank you,

Roman.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温暖的光 2024-11-26 15:12:19

绕过允许浏览器跨域请求的同源策略的一种方法是采用JSONP 但据我所知,它只支持 GET 动词;事实上,这是一个 GET 请求,用于检索 DOM 文档中注入的

如果 JSONP 不是一个选项,则更现代的方法是通过使用 CORS,将 Access-Control-Allow-Origin Http 标头添加到响应< sup>*:

Python

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

Java

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

* 检查浏览器兼容性 这里

One way to bypass the same-origin policy allowing browsers cross-domain requests is adopting JSONP but AFAIK, it only supports the GET verb; In fact, it's a GET request to retrieve the src of a <script> tag injected in the DOM Document

If JSONP is not an option, a more modern way is by using CORS, adding the Access-Control-Allow-Origin Http header to the response *:

In Python:

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

In Java:

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

* Check the browser compatibility here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文