асинхронная загрузка файлов с использованием jquery и python

#jquery #python #django

#jquery #python #django

Вопрос:

Я хочу загружать несколько файлов одновременно, используя javascript и python. Всякий раз, когда я выполняю ajax-запрос, возникает ошибка (403 или запрещено). Я не знаю, что именно происходит не так????? пожалуйста, помогите мне…

вот мой index.html ..

 <!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>jQuery File Upload Example</title>
</head>
<body>
<input id="fileupload" type="file" name="files[]" data-url="/media/" multiple>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="/static/js/jquery.ui.widget.js"></script>
<script src="/static/js/jquery.iframe-transport.js"></script>
<script src="/static/js/jquery.fileupload.js"></script>
<script>
$(function () {
    $('#fileupload').fileupload({
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p/>').text(file.name).appendTo(document.body);
            });
        }
    });
});
</script>
<script>
$('#fileupload').fileupload({
    /* ... */
    progressall: function (e, data) {
        var progress = parseInt(data.loaded / data.total * 100, 10);
        $('#progress .bar').css(
            'width',
            progress   '%'
        );
     }
});
</script>
</body> 
</html>
  

и вот мое мнение…

 def update_file(request):
    print "view is called"
    context = RequestContext(request)
    context_dict = {}
    if request.method== "POST":
        image = request.POST.get('image')
        request.user.userprofile.resume.delete()
        request.user.userprofile.resume = image
        request.user.userprofile.save()
    return render_to_response('index.html', context_dict, context)
  

Комментарии:

1. Включено ли у вас ведение журнала для Django на вашем сервере? Часто вы можете увидеть более подробную информацию о том, почему происходит 403. Или, если вы установите DEBUG= True в своих настройках, вы можете получить более подробную информацию об ошибке.

Ответ №1:

Я думаю, это потому, что вы пропустили токен CSRF https://docs.djangoproject.com/en/dev/ref/contrib/csrf /

Комментарии:

1. точная ошибка, которую я получаю, такова….. ОПУБЛИКОВАТЬ 127.0.0.1:8000/simple_file_upload/update_file 403 (ЗАПРЕЩЕНО) jquery-2.1.1.js:9188 x.support.cors.e.crossDomain.отправить jquery-2.1.1.js:9188 x.extend.ajax jquery-2.1.1.js:9188 загрузить 127.0.0.1:8000/simple_file_upload/profile/:80 onclick 127.0.0.1:8000/simple_file_upload/профиль/:110

2. Похоже на ошибку с токеном csrf, пожалуйста, ознакомьтесь с предоставленной документацией