在烧瓶和JS中设置cookie

时间:2014-01-28 23:18:23

标签: javascript jquery python cookies flask

我正在写一个小型网上商店,后端是用Flask编写的,我使用jQuery来显示弹出窗口,过滤一些输入等等。

有一个非常简单的购物车,我在制作它时遇到了一个问题。 我在考虑将所选择的每个产品的ID(以及金额)存储在cookie中,并通过访问它来生成页面的“cart”部分。 目前,我通过向服务器发布一个AJAX调用来设置cookie,然后服务器更新cookie。

使用Javascript:

$('#addcart_' + this_id).click(function() {
  $.ajax({
    type: "POST",
    url: '/cart/',
    data: JSON.stringify({"id": this_id, "amount": total_amt}),
    contentType: "application/json; charset=UTF-8",
    datatype: 'json',
    async: false
  });
});

在Flask中:

@app.route('/cart/', methods=["POST"])
def cart_update():
    if request.method == "POST":
        data = request.get_json()
        # more code
    return resp  # response with cookies

现在,我想知道,实际上有什么意义吗?我只需要在cookie中存储一些数据,并且调用Flask似乎没有添加任何东西,所以也许我可以通过JS设置它们并且从此过上幸福的生活? 还是有一些缺点?

1 个答案:

答案 0 :(得分:2)

绝对不需要进行服务器端调用来设置所选产品cookie。在客户端更新它是首选,因为它可以消除事务中的所有延迟。

另一件需要考虑的事情是,您的cookie将与每个服务器绑定请求一起发送。如果您不需要此行为(并且您可以使用the browser support for it),则可以使用localStorage并仅在用户结帐时发回所选值。