3
我提出AJAX调用象下面这样:故宫(CSRF令牌丢失或不正确。):
var data_dict = {'user':{{ user.id }}, 'bookId':that.id, 'csrfmiddlewaretoken': '{{ csrf_token }}'};
$.ajax({
type: 'POST',
url:"/issuebook",
data:data_dict,
processData: false,
contentType: false,
success:function(response)
{
}
});
urls.py是:
urlpatterns = [
url(r'^$',views.checkLogin,name='checklogin'),
url(r'^mylibrary/(?P<pk>\d+)/(?P<user_name>[\w\-]+)$',login_required(views.MyLibrary.as_view()),name='mylibrary'),
url(r'^centrallibrary/(?P<pk>\d+)/(?P<user_name>[\w\-]+)$',login_required(views.CentralLibrary.as_view()),name='centrallibrary'),
url(r'^issuebook$',login_required(views.IssueBookView.as_view()),name='issuebook'),
]
我收到“禁(CSRF令牌丢失或不正确。):/ issuebook“ajax调用错误。
在Ajax调用的CSRF令牌越来越呈现为:
var data_dict = {'user':{{ user.id }}, 'bookId':that.id, 'csrfmiddlewaretoken':'fSSdu8dJ4FO6FvDz8eU5ISzOewRYyGbC'};
$.ajax({
type: 'POST',
url:"/issuebook",
data:data_dict,
contentType: false,
success:function(response)
{
}
});
您刚刚通过字符串''{{csrf_token}}'作为'csrfmiddlewaretoken',并且您的ajax调用无法与相对的匹配。相反,您可以在您的调用函数中从您的html手动获取'csrf'标记的哈希值。 – Kasramvd
也在问题中添加呈现的HTML模板。 – v1k45
@ v1k45我在编辑的问题中添加了呈现的{{csrf_token}}。除此之外,我只是在正常工作的模板中呈现几个字符串值 – ankit