Разрешить предпросмотру CORS работать с GCP Compute Engine Instance со статическим внешним ip
Я использую статический внешний IP-адрес для своего экземпляра вычислительного движка в Google Cloud, на котором запущено приложение узла на сервере, которое обслуживает угловое приложение 2 на клиенте.
Когда я использую свое приложение напрямую с GCP-ip (получая доступ к сайту напрямую по его ip и порту), оно работает правильно, но когда я пытаюсь направить свой домен через DNS. (Типичные A - записи и записи CNAME) в ip экземпляра вычислительного движка, когда мое приложение пытается связаться с сервером, я получаю эту ошибку CORS:
"XMLHttpRequest не может загрузить [my-gcp-ip]/login. Перенаправление с" [my-gcp-ip/login] "на" [my-gcp-ip] / "было заблокировано политикой CORS: запрос требует предварительной проверки, что запрещено использовать перекрестное перенаправление."
Я использую Google Cloud DNS, и серверы имен в моем регистраторе доменов были правильно настроены для использования серверов имен Google.
Я также в основном следовал каждому примеру, который нашел по этому поводу, чтобы разрешить CORS OPTIONS, установить заголовки запроса, разрешить методы запроса и разрешить происхождение запроса, учетные данные запроса, max-age-headers и так далее. Где предлагаются разные конфигурации, и ничего из того, что я нашел, не работает для меня:
Несколько полезных ссылок: хотя они не работают для меня:
CORS промежуточное программное обеспечение для экспресс
CORS-и-управления доступом-позволяют-методы-в-экспресс-JS
Также этот суть - Обходной путь
Я использую "Content-Type": "Application / JSON" вместе со своими запросами по всему приложению и из того, что я понял, Preflight обрабатывается браузером, когда запрос больше, чем "простой запрос".
Было высказано предположение, что при использовании простых типов содержимого, таких как "Text / Plain" или "www-form-urlencoded", при отправке запроса на публикацию это не обязательно должно вызывать предпечатную проверку. Однако у меня нет возможности изменить это в коде моего приложения.
Для пояснения: раньше я сталкивался с другой ошибкой CORS: "В запрошенном ресурсе отсутствует заголовок" Access-Control-Allow-Origin "."
Но эта проблема, кажется, была решена с помощью вышеупомянутых ссылок. Проблема здесь - перенаправление, которое дает мне ошибку. (Кроме того: большая часть контента посвящена этой проблеме, чтобы разрешить CORS в целом, но мне было трудно найти сообщения, которые полностью решают эту проблему).
Что я могу сделать?
Что я могу сделать, чтобы обойти этот предполетный полет?
Почему мой Домен считается перекрестным источником, когда я использую DNS и весь код Google: код сервера и клиента находится в одном экземпляре вычислительного движка?
Могу ли я что-нибудь сделать в Google Cloud, чтобы избежать использования CORS без изменения структуры моего приложения в целом. У меня нет очевидной необходимости использовать CORS в целом. Это то, о чем я узнал только сейчас, когда я использую свой домен вместо того, чтобы обращаться к своему экземпляру только по ip.
Спасибо за ваше время, любая помощь очень ценится, и я постараюсь обновить этот пост, когда я найду что-то еще, что может быть полезным.