У меня есть 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);
});