При приеме FormData на сервере Flask возникает ошибка formparser, но только изредка - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь передать файл из реагирующего приложения на флеш-сервер.Файл заполняется из формы загрузки, и нажатие кнопки вызывает вызов извлечения.Основываясь на ведении журнала консоли, я считаю, что файл успешно передается в функцию.Я знаю, что странно, что я не использую переданный объект файла, но я присваиваю значение файла этой переменной-члену в другом месте кода.Вот код реакции:

onDrop = (file) => {
    var test = "http://127.0.0.1:5000"

    const fileData = new FormData();
    fileData.append('file', this.imageFile.files[0]);

    fetch(test, {
        method: 'POST',
        body: fileData ,
        mode: 'no-cors',
    })
    .then(success => {
            console.log("worked");
        })
    .catch(error => {
        console.log("failed!");
    });
};

У меня есть флеш-сервер, работающий на порту 5000. Он принимает запрос, но происходит ошибка синтаксического анализа, которую я не могу понять.Вот код сервера фляги:

@app.route('/', methods=['GET', 'POST'])
def my_function():

        headers = {
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': 'POST, GET, OPTIONS',
            # 'Access-Control-Max-Age': '3600',
            'Access-Control-Allow-Headers': 'Content-Type'
        }

        if request.method == 'OPTIONS':
            return '', 200, headers
        huh = request

        return 'Hello World!'

В этом коде есть точки останова установки, и я вижу странную трассировку стека об ошибках разбора.Самое удивительное, что это НЕ происходит примерно в 10% случаев, и файл заставляет его успешно работать с колбой.

Объект запроса в точке отладки внутри конечной точки колбы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...