静态网页和googleappengine服务器之间的AJAX共享相同的TLD

2024-03-29 08:49:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个可靠的静态网站托管服务主网站。它只允许我托管静态文件,如html,css,js等,现在我已经很少需要用户登录和数据存储。我想我可以用Python引擎处理这个应用程序。在

我的应用程序类似于投票模块,所以我将用它的例子来解释它。 我的计划是配置如下:

main website: www.example.com
appengine:    gae.example.com

在一个匿名用户访问的主网站上:http://www.example.com/vote.html,他应该看到当前的投票状态(已经从appengine检索到)。还有一个登录按钮(来自twitter/facebook)。当他登录时,他应该能够投他的票,并且投票被保存回appengine服务器。在

除了两件事外,大多数事情我都能处理。(考虑同一原产地政策。)

  • 两个域名之间的认证我怎么做。i、 e.www.example.com和{}。

  • 如何从www.example.comgae.example.com发出httppost请求并使用返回的json数据。

注意:我想尽量避免iframes。在


Tags: 文件数据用户com应用程序网站examplehtml
2条回答

你需要使用JSONP。在

子域实际上违反了同源策略。这是因为一些托管解决方案为不同的用户提供子域。这将允许用户互相攻击对方的网站。在

参见:Same Origin Policy - AJAX & using Public APIs

您可以通过确保在允许子域访问的根域上设置登录cookie来维护两个子域之间的登录。子域将能够访问根域的cookies。请参见https://serverfault.com/questions/153409/can-subdomain-example-com-set-a-cookie-that-can-be-read-by-example-com以获取一些示例。在

我不相信您可以直接对另一个子域进行ajax调用。如果目标子域正在协作并支持JSONP,那么可以这样做(最后插入一个脚本标记,调用一个脚本,该脚本用数据调用您)。由于脚本的加载不受同一源策略的约束,您可以绕过它,但是目标子域必须配置为允许并支持JSONP。在

相关问题 更多 >