Почему React не может получить доступ к конечным точкам Flask в производственной среде?

У меня есть приложение 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) не может достичь моих конечных точек. Есть ли какие-то ошибки, о которых я не знаю? Когда запрос отправляется, я даже не получаю код состояния на вкладке сети.

Спасибо.

Скриншот вкладки "Сеть":

введите здесь описание изображения


person appdeveloper    schedule 10.03.2021    source источник


Ответы (1)


Вам нужно изменить протокол подключения на http.

person Evgeniy    schedule 10.03.2021
comment
Это не должно иметь значения. Кроме того, https является стандартом. - person appdeveloper; 10.03.2021
comment
Нет, это имеет значение. Особенно, если вы работаете на своем локальном ПК и, конечно же, не имеете сертификата. stackoverflow.com/questions/19541547/ - person Evgeniy; 10.03.2021
comment
Извините, что вы правы в этом случае. Мой рабочий сервер использует шифрование. - person appdeveloper; 10.03.2021
comment
Можете ли вы предоставить скриншот вашей сетевой вкладки в браузере dev. Инструментарий? - person Evgeniy; 10.03.2021
comment
Скриншот добавлен. - person appdeveloper; 10.03.2021
comment
Судя по всему, беспокоят только POST-запросы. - person appdeveloper; 10.03.2021