首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AJAX不起作用的情况下更新服务器端Flask会话

在AJAX不起作用的情况下更新服务器端Flask会话
EN

Stack Overflow用户
提问于 2018-08-03 02:06:02
回答 1查看 309关注 0票数 0

我正在尝试弄清楚为什么我的AJAX脚本不能更新我的Flask应用程序的服务器端会话。

使用sqlalchemy实现Flask-Session。我可以看到数据库中的表和加密的会话数据。

init.py

代码语言:javascript
复制
...

from flask_session import Session

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
Session(app)

...

config.py

代码语言:javascript
复制
...

SESSION_TYPE = 'sqlalchemy'
SESSION_SQLALCHEMY_TABLE = 'app_sessions'

当我得到正确的响应时,Ajax调用就会工作。

代码语言:javascript
复制
$.post("/ajax_fnc/_update_session", post_data)
            .done(function(data) {
                console.log(data)
})

Flask应用程序返回更新的cart_data:

代码语言:javascript
复制
...
@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进行更新时,它并不可靠。我花了半天多的时间寻找答案,但似乎找不到我遗漏的(或不理解的)东西。

EN

回答 1

Stack Overflow用户

发布于 2018-08-03 22:17:56

糟糕,经过更多的挖掘,我发现每次发出http请求时都会调用我的initialize函数。所以..。当然,ajax更新永远不会持久。

重新定位了初始化函数,服务器端会话工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51659781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档