У меня есть REST API, реализованный в Grails с использованием профиля rest-api. В методе findProfile я возвращаю заголовки CORS, необходимые Ionic для прохождения проверок CORS. Я развернул приложение на Apache2, и URL-адрес REST API НЕ проходит через Ionic Proxy. Вчера моя служба API не вернула заголовки CORS, и это привело к сбою. Я исправил проблему, и она работает, если я тестирую приложение с помощью ionic serve и меняю URL-адреса для прохождения через прокси. Но когда я пытаюсь получить доступ к той же функции в развернутом приложении Apache2, я не получаю обратно заголовки CORS, как будто что-то было кэшировано. Очень странно. Есть идеи, почему это могло происходить?
Еще несколько деталей: Приложение ionic и REST API развернуты на одном хосте.
Я понимаю, что CORS является проблемой только при локальном тестировании приложения с помощью ионной подачи или ионного запуска. Я также понимаю, что прокси применимы только в вышеупомянутой ситуации.
Я вызываю другие функции из того же REST API, и у них нет проблем.
Пожалуйста, дайте мне знать, какой дополнительной информацией вы можете мне поделиться, чтобы помочь вам разобраться в проблеме и получить ответ.





Я нашел источник своей проблемы.
Для всех запросов с типом содержимого, отличным от application / json, предполетный запрос CORS не выдавался, поэтому сбоев не было, потому что сервер с радостью принял запрос.
С другой стороны, когда был отправлен запрос с типом содержимого application / json, предполетный запрос CORS с методом OPTIONS был отправлен на сервер до исходного запроса POST. Поскольку в моем приложении Grails REST API не был включен CORS, предполетный запрос не выполнялся. Не было сбоев при прохождении через прокси, потому что предполетный запрос не генерируется при прохождении через прокси. Вот почему при локальном тестировании он работал нормально.
На всякий случай вам интересно, как включить поддержку CORS в Grails 3.2.11. Вот как:
В файле application.yml в самом верху (не уверен, имеет ли это значение, возможно, нет, но я добавил его вверху) добавьте следующее:
Прямо под тегом grails: (см. Ниже)
грааль: корс: включен: правда
Это делает его широко открытым, но вы можете затянуть его по мере необходимости. Для получения дополнительной информации перейдите по этой ссылке:
http://docs.grails.org/3.2.11/guide/single.html#whatsNewCors
Восстановил мою автономную WAR, развернул ее и вуаля. Работает как шарм.
Надеюсь, это поможет людям, имеющим те же проблемы, что и я.