JQuery的:后FORMDATA和CSRF令牌在一起 [英] JQuery: post FormData AND csrf token together

查看:351
本文介绍了JQuery的:后FORMDATA和CSRF令牌在一起的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

数据:..下面正确行?我要发布表单数据和CSRF令牌Django视图功能。

  $('#文件上传')。在('改变',函数(){
    VAR currentpath = window.location.pathname;
    VAR FORMDATA =新FORMDATA($('表')[0]);
    $阿贾克斯({
            网址:currentpath,//服务器脚本来处理数据
            键入:POST,
            数据:{FORMDATA,csrfmiddlewaretoken:{{csrf_token}}},
            缓存:假的,
            的contentType:假的,
            过程数据:假的
        });
});
 

解决方案

您已经为您的参数添加到FORMDATA对象(使用的追加)和往常一样独自传递FORMDATA对象作为data属性。

  $('#id_image')。在('改变',函数(){
    VAR currentpath = window.location.pathname;
    VAR FORMDATA =新FORMDATA($('表')[0]);
    formData.append('csrfmiddlewaretoken,{{csrf_token}}');
    $阿贾克斯({
            网址:currentpath,//服务器脚本来处理数据
            键入:POST,
            数据:FORMDATA,
            缓存:假的,
            的contentType:假的,
            过程数据:假的
        });
});
 

Is the data:.. line below correct? I want to post the form data AND csrf token to a Django view function.

$('#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
        });
});

解决方案

You have to add your parameters to the FormData object (using append) and as always pass the formdata object alone as the data property.

$('#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令牌在一起的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆