1

我有一个静态 S3 托管站点的 api 端点。S3 站点位于以下域名上:www.mysite.com

我的api(django)运行在站点域名:api.mysite.com

当我在我的网站上使用我的登录按钮并使用正确的用户名/密码登录时,django 会使用 Set-Cookie 发回响应,但浏览器没有设置任何 cookie。您可以在下面看到完整的回复,

Request URL:http://api.mysite.com:8000/api/form/login/
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Content-Length:46
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Host:api.mysite.com:8000
Origin:http://mysite.com
Pragma:no-cache
Referer:http://mysite.com/eventform.html
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22
Form Dataview sourceview URL encoded
token:68f4ebd02c0e1915d3e3110a04fccb0ab670aeab
Response Headersview source
Access-Control-Allow-Origin:*
Content-Type:text/html; charset=utf-8
Date:Mon, 13 May 2013 22:21:54 GMT
Server:WSGIServer/0.1 Python/2.7.3
Set-Cookie:sessionid=3kn2hovtweeofalf00ld3lowb6yvete; Domain=.mysite.com; expires=Mon, 27-May-2013 22:21:54 GMT; Max-Age=1209600; Path=/
Vary:Cookie

注意线 Set-Cookie:sessionid=3kn2hovtweeofalf00ld3lowb6yvete; Domain=.mysite.com; expires=Mon, 27-May-2013 22:21:54 GMT; Max-Age=1209600; Path=/

在 Django 中,我有 SESSION_COOKIE_DOMAIN = '.mysite.com'

但我尝试将其更改为 'mysite.com' 和 '' 两者都不允许我的浏览器设置此返回的 cookie。

www.msyite.com 是托管在 Amazon S3 上的静态站点,但我使用 Django 作为数据的 api/后端。

当我使用 Django 呈现我的登录页面时,它们工作得很好(登录/注销 cookie 和会话都工作得很好,所以我知道这不是我的 django 代码)但是当使用 S3 甚至 python SimpleHTTPServer 时,浏览器不会设置返回的 cookie .

提前致谢!

4

1 回答 1

0

AFAIK 静态 S3 站点的目的是根本不设置/接受任何 cookie?

我们将其用于图像等静态内容,以便摆脱所有 cookie 内容,并且在图像或 CSS 请求期间不会出现请求过载。

并且:S3 不是普通的 Web 服务器,它的行为非常不同,强烈推荐 RTM。这很奇怪,是的,但是我从这个线程中提取的答案可以 S3 设置用户 cookie 吗?只是“不”。

于 2013-05-13T22:57:47.090 回答