Как побороть CORS. Ибо вообще не понимаю, что делать?
Прошу сильно не ругать, я пока совсем джун.
Проблема следующая:
Есть несколько запущенных локальных серверов на ноде(express.js) на удаленных компах, раскиданных по России, эти сервера мониторят за некоторыми процессами, данные для которых берут с другого локального сервера по протоколу OPC_UA. Эти локальные сервера открыты для внешнего мира через пакет "localtunnel". То есть с помощью этого пакета я получаю глобальную конечную точку по адресу "https://example.loca.lt".
Так вот у меня этих конечных точек может быть много, до нескольких десятков.
Я их пытаюсь использовать следующим образом - примерно в интервале раз в 1-5 минут я делаю GET запрос с помощью "fetch" для каждой точки, но я не получаю данные, хоть и в консоли показывает статус 200.
Изначально вообще блокировало политикой CORS, после чего я отключил его с помощью передачи параметра {mode:'no-cors'} в "fetch" запрос, но в консоли приходит ошибка "Uncaught (in promise) SyntaxError: Unexpected end of input", хоть и в заголовках все равно приходит статус 200. Так же после установил Referrer в "no-referrer-when-downgrade", но результат тот же.

В чем может быть проблема? Как можно ее решить или в какую сторону нужно копать?
P.S. Что самое интересное, тот же код, нормально работает в Electron.js, так же все норм приходит в Постмане и при вставке ссылки в поисковую строку браузера.
Ответы (1 шт):
В итоге:
Более подробно прочитал про CORS и понял в чем заключалась проблема.
В результате исследования этого вопроса я пришел к следующему заключению:
Проблема оказалась не в моем коде, мой GET запрос работает так как и должен он работать, фактически запрос выполняется и фактически приходит ответ, а нет результата из-за того, что этот ответ блокирует браузер согласно политики CORS, а вот в Postman и Electron JS все норм работает, в Postman понятно, что нет никакой политики, а вот в Electron JS скорее всего упрощенная версия политики и настраивается она через конфигурацию.
Решением является - установка на сервере localtunnel необходимых заголовков. Для этого необходимо сервер localtunnel развернуть у себя на хостинге со своими настройками и заголовками.
P.S. Почитав некоторую информацию на GitHub, я понял что бесплатный сервер localtunnel, развернутый на машине разработчика этого пакета, крайне не стабильный, с чем я сам часто сталкиваюсь, ссылки ежедневно неработоспособны какое-то время, видимо когда большие нагрузки. В принципе идеальной работы от него требовать не стоит, так как он бесплатный о чем говорит и сам разработчик, так же он говорит, что это не приоритетный проект для него и он к нему возвращается время от времени если есть желание и время.


