5

プロジェクトにdjango-ajax-uploaderを実装していますが、現在3.5.0未満の最新バージョンのfineuploaderを使用したいと考えています.csrf_tokenを送信するためにすべきことはcustomHeadersディクショナリ内に置くことだけです.

django-ajax-uploader にバンドルされているものではなく、valum の file-uploader が呼び出されるようになったため、Fine Uploader の最新バージョンを使用する場合は、上記のテンプレートの params 引数を次の customHeaders に置き換えることで実行できます。 :

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 %}

views.pyは持っています:qq_file_uploader = AjaxFileUploader()

そして、ビュー内でファイルをアップロードしようとするたびに、403 エラーが発生しました。CSRF verification failed. Request aborted.

4

2 に答える 2