Почему обработчик ошибок срабатывает, когда я пытаюсь отправить ответ на файл django?

Я загружаю видео файл на мой django сервер и сохраняю его в FileSystemStorage. Затем я получаю несколько кадров из этого видео с помощью библиотеки python (PIL) и сохраняю их в fss. Затем я хочу отобразить эти изображения на странице, поэтому я отправляю (в качестве ответа) frames_number, fps, filename.

def loop(request):
if request.method == 'POST':
    # save video file in vile storage
    file = request.FILES['file']
    fss = FileSystemStorage()
    fss.save(file.name, file)
    
    # set up class, for work with video
    vt = VideoTools(file.name)
    
    # save frames in media storage
    frames, fps = vt.get_frames()

    # return frames_number and fps
    return JsonResponse({ 
        'frames': frames,
        'fps': fps,
        'filename': file.name,
    })
return render(request, 'main/loop.html')

Во фронтенде я считаю, сколько кадров мне нужно, и делаю соответствующее количество POST-запросов, каждый из которых дает мне один кадр, но при получении кадра срабатывает обработчик ошибок. Почему?

success: function(response) {
        let fps = response['fps']
        let frames = response['frames']
        let filename = response['filename']
        let frames_needed = Math.round(frames / fps + 1)

        for(let i=0; i<=frames_needed; i+fps) {
            // making request
            let img = get_each_frame(0, filename)
            
            img.done(function(response) {
                console.log(response, 'get_frame_response')
            })
            // getting this handler triggered
            img.fail(function(error) {
                console.log(error, 'get_frame_error')
            })
        }
    },

function get_each_frame(frame_number, filename) {
let request = $.ajax({
    type: "POST",
    url: "get_frame",
    data: {
        'frame_number': frame_number, 
        'filename': filename,
        'csrfmiddlewaretoken': $('[name=csrfmiddlewaretoken]').val(),
    },
    dataType: "json",
    });
return request
}

View.py

def get_frame(request):
frame_number = request.POST['frame_number']
filename = request.POST['filename']
fss = FileSystemStorage()

name = f'frame_{frame_number}_{filename.replace(".mp4", "")}.png'
img = fss.path(name)
return FileResponse(open(img, 'rb'))
Вернуться на верх