【发布时间】:2018-02-16 03:06:08
【问题描述】:
我是网络应用的新手,如果这个问题完全不合时宜,我很抱歉。
我有一个简单的 ajax 调用来设置 python 烧瓶应用程序的状态,如下所示。
下面是我设置值的方法
-- 设定值--
Javascript (page1.html)
function foo(val1, val2){
$.ajax({
url: "./set_option",
type: "POST",
data: {arg1:val1, arg2:val2}
});
}
python 端
@app.route('/set_option', methods=['post'])
def set_option():
session['val1'] = request.form.get('arg1')
session['val2'] = request.form.get('arg2')
下面是我如何尝试对值做一些事情
-- 检索值--
Javascript (page2.html)
function do_something_with_store_value(){
$.ajax({
url:"./print_them",
type: "POST"
});
}
python 端
@app.route('/print_them', methods=['post'])
def print_them():
print(session['val1'])
print(session['val2'])
在上面的例子中,我看到 session['val1'] 和 session['val2'] 在 def print_them() 中不存在>。但是,如果我修改 function foo(val1, val2) 来处理返回响应和 def set_option() 来返回一个简单的字符串值 session['val1'] 和 session['val2'] 保持不变。
我对这种行为感到非常困惑。我想我可以只使用修改来使其工作,但是我真的很犹豫要不要做我不清楚的事情。
我是否必须从烧瓶/python 服务器返回响应才能在请求之间保存会话值?我想我可以使用 ajax post call 在服务器端设置状态,而不需要从服务器返回任何数据。
我还需要向 ajax 调用返回某种成功/失败通知吗?和 session 不保值有什么关系?
有人可以解释一下这种混乱吗?
谢谢!
【问题讨论】:
标签: javascript python ajax flask