JQuery:将 FormData 和 csrf token 一起发布

标签 jquery ajax django

下面的 data:.. 行正确吗?我想将表单数据和 csrf token 发布到 Django View 函数。

$('#file-upload').on('change', function () {
    var currentpath = window.location.pathname;
    var formData = new FormData($('form')[0]);
    $.ajax({
            url: currentpath,  //server script to process data
            type: 'POST',
            data: {formData, 'csrfmiddlewaretoken': '{{ csrf_token }}'},
            cache: false,
            contentType: false,
            processData: false
        });
});

最佳答案

您必须将参数添加到 FormData 对象(使用 append ),并一如既往地将 formdata 对象作为数据属性单独传递。

$('#id_image').on('change', function () {
    var currentpath = window.location.pathname;
    var formData = new FormData($('form')[0]);
    formData.append('csrfmiddlewaretoken', '{{ csrf_token }}');
    $.ajax({
            url: currentpath,  //server script to process data
            type: 'POST',
            data: formData,
            cache: false,
            contentType: false,
            processData: false
        });
});

关于JQuery:将 FormData 和 csrf token 一起发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16761987/

相关文章:

Ajax 调用 Laravel 路由

Django和Selenium Web测试错误: [Errno 10054]

javascript - 在 GetJson 更改 url 历史记录

php - Ajax 或 jQuery 页面重新加载,新数据添加到 sql 数据库

javascript - 如何处理克隆的幻灯片以在 SlickJS 中创建无缝的 html5 视频 slider ?

javascript - 带有希伯来字符的 XMLHttpRequest

javascript - 如何在 AngularJS Controller 中使用环境变量?

python - 创建一个新模型,其中包含当前现有模型的所有字段

python len() 抛出 django 绑定(bind)中预期的运算符

jquery - 修复了在 IE6 中滚动时标题不起作用的问题