POST-запрос через Ax ios с длительными перерывами во время обработки - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть REST API-сервер в Python Flask framework и Vue. JS frontend. Сценарий, запускаемый после запроса, занимает около 20 минут, что ожидается, поскольку это довольно дорогой процесс машинного обучения. Все отлично работает при использовании cURL, но когда я отправляю ту же вещь из моего браузера, используя Ax ios из моего внешнего интерфейса, он запускает весь сценарий из , если request.method == 'POST' больше, чем один раз, и через несколько минут происходит сбой с ошибкой CORS «Запрос на перекрестное происхождение заблокирован: та же политика происхождения запрещает чтение удаленного ресурса в ....» . В то же время журналы Flask показывают, что процесс продолжает выполняться и в итоге завершается успешно. Вопрос в том, почему Ax ios запускает процесс сервера более одного раза (я даже поставил , если request.method == 'POST': , чтобы убедиться, что ОПЦИИ не запускают его) и действительно ли это CORS проблема - я пробовал разные конфигурации заголовков, ни одна из которых не работала.

Мой flask API:

CORS(app, resources={r'/*': {'origins': '*'}})

@app.route('/api/', methods=['POST'])
def LOPost():
    if request.method == 'POST':
        responseObject = {'status': 'success'}
        postData = request.get_json(force=True)
        post1= postData['post1']
        levels = postData['post2']
        output = analysis(post1,post2)
        return jsonify(responseObject)

JS Запрос:

axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*';

axios.post(API, payload, {
        headers: {
        },
        crossdomain: true,
      })
        .then((res) => {
          this[dataStore] = res.data;
          callBack();
        })
        .catch((error) => {
          // eslint-disable-next-line
          console.error(error);
        });
...