问题描述
|
我目前正在使用Flask和Google App Engine进行项目。当我闪烁一条消息然后使用
redirect()
时,调用get_flashed_messages()
返回空:
@views.route(\'/todo/add\',methods=[\"POST\"])
def add_todo():
flash(\'hey\')
return redirect(url_for(\'todo_list\'))
但是,如果我注释掉
# SERVER_NAME = \'localhost\'
那么它似乎工作正常。我的问题是我必须使用子域,因此需要设置SERVER_NAME。
怎么了
解决方法
我知道了!
诀窍是将服务器名称设置为带点的名称。
因此\'localhost \'变成\'app.local \',并且app.local应该添加到/ etc / hosts,指向与localhost相同的地址。
从文档:
请记住,不仅
烧瓶有不知道的问题
什么是子域,您的网络浏览器
也一样。最现代的网络浏览器
不允许跨子域Cookie
在没有名称的服务器上设置
里面的点。因此,如果您的服务器名称是
\'localhost \'您将无法
为\'localhost \'和每个
它的子域。请选择一个
在这种情况下,不同的服务器名称,
像\'myapplication.local \'并添加
这个名称+您想要的子域名
使用到您的主机配置或设置一个
本地绑定。
, 您是否设置了cookie以在所有子域中都可以使用?
默认情况下,它们仅在设置它们的域上可读