我正在使用django restframe工作,当我使用浏览器发送PUT请求时,它运行良好。但是当我像以前一样使用ajax发送请求时,它告诉我csrf令牌丢失或无法纠正。
我的jQuery代码如下所示:
$.ajax({
url: "/api/users/1/",
type: "PUT",
datatype: "json",
data: {csrfmiddlewaretoken: csrf_token, "user_gender": 2, "user_details": 23 },
....
在Chrome控制台中
csrfmiddlewaretoken:wUlPIaEmZd2FMA2ob9VRSVKWpOf6EQHn
user_gender:0
user_details:111asdfasdfsdf
我是console.log(csrf_token),它和我在浏览器中使用的一样。
我在这里关注了Bryan Django CSRF check failing with an Ajax POST request,它使用POST请求在其他页面中工作。
答案 0 :(得分:1)
Django文档说,你可以在你的AJAX请求中的 X-CSRFToken 标题中加入csrf-token:https://docs.djangoproject.com/en/dev/ref/csrf/#ajax