@Fletchling

Получаю ошибку, что нет CORS заголовка, хотя он указан, в чем проблема?

У меня есть сервер на python, который обрабатывает запросы с помощью библиотеки python-socket.io. Фронтенд написан на react и отправляет запросы с помощью socket.io-client. Изначально все работало хорошо, но в какой-то момент я начал получать ошибку:
Access to XMLHttpRequest at 'https://f64f-94-29-126-249.eu.ngrok.io/socket.io/?EIO=4&transport=polling&t=OEJEvFx' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
GET https://f64f-94-29-126-249.eu.ngrok.io/socket.io/?EIO=4&transport=polling&t=OEJEvFx net::ERR_FAILED 200

При этом, в бэкенде у меня указан заголовок:
sio = socketio.Server(cors_allowed_origins=['*'])

Далее я подумал, что проблема может быть с ngrok, поэтому стал его запускать с аттрибутом:
./ngrok http --host-header=rewrite 5000

Также пробовал запускать так:
./ngrok http --host-header='localhost:5000' 5000

Это проблему не решило, возможно проблема с фронтендом, создал пустой проект, попытался подключиться - та же ошибка. Попробовал указать такой параметр при подключении:
const socket = io("https://f64f-94-29-126-249.eu.ngrok.io", {transports: ['websocket', 'polling', 'flashsocket']});


И начал получать уже другую ошибку:
websocket.js:50 WebSocket connection to 'wss://f64f-94-29-126-249.eu.ngrok.io/socket.io/?EIO=4&transport=websocket' failed:


Далее я попробовал запустить сервер на собственном компьютере и сделать его доступным онлайн с помощью того же ngrok-а. И удивительно, но на этот раз все работало. Поэтому я решил сменить сервер, на котором изначально запускался бэкенд на другой, но получал ту же ошибку с CORS. Поэтому сделал вывод, что бэкенд почему-то работает только на моем компьтере, хотя фронтенд запускал не только с локалки, а еще с хостинга, но тоже работало только если бэкенд на моем компьютере. При этом, с того времени, как все работало на сервере, код, связанный с сокетами не менялся, конфигурация сети тоже. В чем может быть ошибка?
  • Вопрос задан
  • 526 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы