gpt4 book ai didi

jquery - 当 jquery ajax 发布带有 processData=false 的 formdata 时,csrf_token 的 Django 响应 403 被拒绝

转载 作者:行者123 更新时间:2023-12-01 05:45:06 26 4
gpt4 key购买 nike

formdata = new FormData($form);
case ("filesystem"):
$.ajax({
type:"POST",
url:$form.attr('action'),
xhr: xhr_provider,
data: formdata,
processData: false,
contentType:false
})
.fail(function(Response){alert(Response.responseText)})
.done(function(response){
alert("111");
if (response.has_errors){
render_errors($form, response);
} else {
$form.closest(".modal").modal("hide");
}
});
alert("12345");
break;

当我尝试将包含文件的 formdata 发送到 Django 时,我将面临两个问题:
如果我按照所有其他建议设置 processData: falsecontentType:false,Django 将拒绝此 POST 并显示 403 错误。

如果我注释掉将 processDatacontentType 设置为 false 的这两行,Jquery 将抛出 Uncaught TypeError:非法调用,这是另一个常见问题,解决方案是设置processData: falsecontentType:false。同时,包含文件的formdata已成功发送到Django并处理无误。

所以我很困惑,我应该怎么做才能将带有文件的表单数据发送到 Django

最佳答案

在您的 views.py 中,您应该将此装饰器放入函数中以处理 post 以防止 403:

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def your_function(request):
# your logic

关于jquery - 当 jquery ajax 发布带有 processData=false 的 formdata 时,csrf_token 的 Django 响应 403 被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com