Jquery 为什么我在Django收到403 POST请求错误?
为什么我收到403 POST请求错误 我不明白这里怎么了Jquery 为什么我在Django收到403 POST请求错误?,jquery,django,ajax,csrf,Jquery,Django,Ajax,Csrf,为什么我收到403 POST请求错误 我不明白这里怎么了 $('#id_submit').click(function(e) { e.preventDefault(); var form = new FormData($('form')[0]) form.append("image", $("input#id_image")[0].files[0]) var data = { form: form, image_form: 123 } $.ajax({
$('#id_submit').click(function(e) {
e.preventDefault();
var form = new FormData($('form')[0])
form.append("image", $("input#id_image")[0].files[0])
var data = {
form: form,
image_form: 123
}
$.ajax({
headers: '{{ csrf_token }}',
type: 'POST',
data: data,
processData: false,
contentType: false
})
})
您没有正确设置
{{csrf_token}
,您需要将其注入POST数据,或作为X-CSRFToken
头,但不能作为整个头。请参见示例
在POST数据中
var数据={
形式:形式,,
图像格式:123,
csrfmiddlewaretoken:“{{csrf_令牌}”
}
在邮件标题中
或者我们可以将其包含在帖子标题中,如:
$.ajax({
headers: {'X-CSRFToken': '{{ csrf_token }}' },
type: 'POST',
data: data,
processData: false,
contentType: false
});
$.ajax({
标题:{'X-CSRFToken':{{{csrf_token}}},
键入:“POST”,
数据:数据,
processData:false,
contentType:false
});代码>标题应该是键和值。试试:“X-CSRFToken:{{csrf_token}}”。403响应可能也有一个主体。检查是否有实际的错误消息。在设置中使用DEBUG=True;)告诉我如何获取request.POST中的数据?它在那里是空的(request.POST.viewkeys())…@crmk_Мцццццццццццццццц1094。因此,您需要获取这些值,并用这些值组成一个字典。@БМццццццццццццццццццццццццццццц,您需要获取输入元素中的值,并构造一个字典。不能将表单“传送”到服务器,只能将值传送到服务器。
$.ajax({
headers: {'X-CSRFToken': '{{ csrf_token }}' },
type: 'POST',
data: data,
processData: false,
contentType: false
});