【发布时间】:2015-05-22 19:23:24
【问题描述】:
我的 django 应用程序使用 ajax 将商品添加到购物车。 ajax请求方式为POST,我通过js开启请求头:
var csrftoken = getCookie('csrftoken');
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
问题是,我不是从表单发送请求,而只是使用按钮和 onClick 事件,所以我不在模板中使用 {{ csrf }}。所以,cookie 没有设置,直到我访问另一个页面(例如,登录页面)。我应该使用表单(这不是一个好主意,因为我在一个页面上有很多项目,并且为每个项目创建了带有 csrf 令牌的表单),或者有一种方法可以手动设置 csrf cookie,如果不是放?谢谢。
【问题讨论】:
标签: python ajax django cookies csrf