django-ajax-uploader如何使用fine-uploader 3.5.0发送csrf_token

Cri*_*jas 5 django ajax image-uploading fine-uploader

我正在一个项目中实现django-ajax-uploader,但是我想使用当前在3.5.0下的最新版本的fineuploader,据说,因为文档说我发送csrf_token应该做的唯一事情就是将它放在customHeaders字典中:

如果你想使用最新版本的Fine Uploader,现在调用valum的文件上传器,而不是与django-ajax-uploader捆绑的那个,你可以通过用以下customHeaders替换上面模板中的params参数来实现:

customHeaders:{'X-CSRFToken':'{{csrf_token}}',},

这是我的完整代码:

...    
        <h1>qq-file-uploader</h1>
        <div id="upload-button" class="btn btn-primary"><i class="icon icon-cloud-upload icon-white"></i> Selecciona un archivo</div>
        <div id="file-upload"></div>
    </form>
{% endblock %}

{% block styles %}
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}js/libs/jquery.fineuploader-3.5.0/fineuploader-3.5.0.css"/>
{% endblock %}

{% block javascript %}
    <script type="text/javascript" src="{{ STATIC_URL }}js/libs/jquery.fineuploader-3.5.0/jquery.fineuploader-3.5.0.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('div#file-upload').fineUploader({
                customHeaders: {
                    'X-CSRFToken': '{{ csrf_token }}'
                },
                request: {
                    endpoint: '{% url 'documents:qq_file_uploader' %}'
                },
                button: $('div#upload-button'),
                multiple: false,
            });
        });
    </script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

在我的views.py身上:qq_file_uploader = AjaxFileUploader()

每当我尝试上传视图中的任何文件时,我都会收到403错误: CSRF verification failed. Request aborted.

pan*_*ore 4

使用 request.params 设置令牌并通过 POST 发送。

...
request: {
    endpoint: '{% url 'documents:qq_file_uploader' %}',
    params: {
        'csrfmiddlewaretoken': '{{ csrf_token }}'
    }
},
...
Run Code Online (Sandbox Code Playgroud)