非localhos上没有会话对象

2024-09-30 19:20:52 发布

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

我在Web2py中遇到会话对象问题。在localhost上,下面的代码运行得非常好。Session对象存储我需要的内容。但是,一旦我这样运行它:

$python web2py.py -i <myhomeip>

会话对象始终为“无”。我穿上了会话。清除(),但前提是发送了电子邮件,而代码在此之前就失败了。会话不创建/不存在怎么可能?你知道吗

Ajax调用此函数:

def generateCart():
    session.orderdetail = request.vars;
    print "in generateCart() session is", session.orderdetail;
    return None;

然后函数cart()访问会话:

print "in cart() session.orderdetail", session.orderdetail;
if (len(session.orderdetail.items()) == 0):
    print "in cart() order was empty"
    redirect(URL('otherfn'));
pass
lOrderDetail = session.orderdetail;

当我以localhost运行时,这段代码就可以正常工作。当我使用-I运行时,上面的print语句返回None。如果我这样做了

print session

我一个也没有。你知道吗

我没有会话.安全(),暂时不要依赖https。我真的很感激你在这方面的帮助。你知道吗


Tags: 对象函数代码innonelocalhost内容session
1条回答
网友
1楼 · 发布于 2024-09-30 19:20:52

我想快速回答这个非常棘手的问题,以防有人碰到这个问题。如果主持人认为这不是建设性的:我理解。你知道吗

有几篇文章对我很有帮助。主要是:How do I return the response from an asynchronous call?。以及在这个链接中接受答案的链接。你知道吗

基本上,问题不在于ajax发送了什么,而在于何时发送(非常棘手的问题)。数据到达服务器,但不是在正确的时间。通过投入大量资金控制台.log()”打印语句时,我发现ajax没有出现。会话是在ajax到达之后创建的。你知道吗

问题仍然是为什么在localhost上它可以100%工作,而在public主机上却不能。我想这和环回在localhost上的工作方式有关,但我不能回答这个问题-我不知道。你知道吗

从中得到的教训是:正确掌握基础知识(即ajax)。你知道吗

相关问题 更多 >