У меня есть приложение React с Flask на сервере в производстве, и я обнаружил, что ни одна из моих конечных точек не доступна из React.
Я знаю, что при использовании маршрутизации на стороне клиента разработчик должен использовать универсальную функцию, подобную приведенной ниже:
@app.errorhandler(404)
def error_handler(e):
return render_template('index.html')
Я использую Flask-CORS для обработки запросов перекрестного происхождения:
внутри config.py:
class ProductionConfig:
CORS_HEADERS = 'Content-Type'
...
...
мой план:
CORS(auth_blueprint, resources={r'/*': {"origins": "https://example.com", "allow_headers": "*", "expose_headers": "*"}})
@auth_blueprint.route('/auth/login', methods=['POST'])
@cross_origin()
def login():
...
...
на странице я определяю заголовки следующим образом:
const headers = { "Access-Control-Allow-Origin": "*" };
const url = "https://example.com:5000/auth/login";
axios.post(url, data, headers).then(resp => { ... })
И я не получаю никаких ошибок вообще. Журналы сервера чисты, а консоль показывает только Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com:5000/auth/login. (Reason: CORS request did not succeed)
. Причина: не удалось выполнить запрос CORS, что означает, что сервер ничего не вернул. Приложение отображается нормально, однако React (axios) не может достичь моих конечных точек. Есть ли какие-то ошибки, о которых я не знаю? Когда запрос отправляется, я даже не получаю код состояния на вкладке сети.
Спасибо.
Скриншот вкладки "Сеть":