【发布时间】:2019-01-10 14:08:11
【问题描述】:
我试图弄清楚为什么我的 AJAX 脚本不会更新我的 Flask 应用的服务器端会话。
使用 sqlalchemy 实现了 Flask-Session。我可以看到数据库中的表和加密的会话数据。
init.py
...
from flask_session import Session
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
Session(app)
...
config.py
...
SESSION_TYPE = 'sqlalchemy'
SESSION_SQLALCHEMY_TABLE = 'app_sessions'
Ajax 调用正常,因为我得到了正确的响应。
$.post("/ajax_fnc/_update_session", post_data)
.done(function(data) {
console.log(data)
})
Flask 应用返回更新后的 cart_data:
...
@app.route('/ajax_fnc/_update_session', methods=['POST'])
def ajax_update_session():
session['cart_data']['qty'] = 1
return jsonify(session['cart_data']['qty'])
浏览器控制台记录来自 Flask 应用程序的更新且正确的响应。但是刷新站点会加载购物车数据量为 0 的会话。所以它不起作用。
如何使用 AJAX 更新服务器端会话并使其保持不变?我错过了什么?
注意:在服务器端使用购物车数量 0 初始化会话可以正常工作。就在我尝试使用 Ajax 进行更新时,它并没有坚持下去。我花了半天多的时间寻找答案,但似乎找不到我遗漏的(或不理解的)。
【问题讨论】:
标签: ajax python-3.x session flask