django ajax发送post请求

第一种:将csrf_token放在from表单里

<script>
        function add_competion_goods() {
            $.ajax({
                url: "{% url ‘add_competition_goods‘ %}",
                type: "POST",
                dataType: "json",
                data: $(‘#add_competition_goods_from‘).serialize(),//直接将from表单打包
                success: function () {
                    $(‘#add_competition_modal‘).modal(‘hide‘);
                    alert(‘secces‘)
                }
            })
        }
    </script>

第二种:发送前添加头部信息

<script>
        function submit_read_save_order_data() {
            var excel_file = document.getElementById("order_excel").files;
            var excel_file_size = excel_file[0][‘size‘];
            console.log(excel_file_size);
            if (excel_file_size > 0 & excel_file_size < 60000000) {
                alert("已开始上传");
                $(‘button#upload_data‘).attr(‘disabled‘, ‘disabled‘);
                {#console.log(excel_file_size);#}
                var fd = new FormData();
                fd.append(‘excels‘, excel_file[0]);
                $.ajax({
                        url: "{%url ‘read_save_order_data‘ %}",
                        type: "POST",
                        dataType: "json",
                        data: fd,
                        processData: false,// tell jQuery not to process the data
                        contentType: false,// tell jQuery not to set contentType
                        beforeSend: function (xhr, setting) {
                            xhr.setRequestHeader("X-CSRFToken", "{{ csrf_token }}")
                        },
                        success: function (msg) {
                            alert(msg)
                        },
                        error: function (msg) {
                            alert(msg)
                         }
                    }
                )
            } else {
                alert("文件为空,或大小超出60M,请检查")
            }
        }
    </script>