Ситуация:
Разрабатываю плагин и использую nginx как обратный прокси к rails:3000 — всё работает отлично, но возникают проблемы с доступом к API из-за надоедливых ошибок CORS, которые мы все хорошо знаем и «любим».
Доступ к XMLHttpRequest по адресу 'blah blah blah' из источника 'foo bar bing' заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок 'Access-Control-Allow-Origin'.
На данный момент я пробовал добавлять заголовки в nginx, но по какой-то причине эти заголовки не отображаются при отладке в Chrome.
Также пытался использовать nginx для изменения proxy_headers из rails в nginx, но это тоже не помогло.
Кроме того, пробовал использовать расширение Chrome для вставки заголовков, но и это не сработало, хотя тестирование CORS в браузере с помощью специализированного сайта показало, что всё разрешено.
Затем попытался добавить gem rack-cors, но не смог настроить config.middleware из-за ошибки freeze.
Это блокирует разработку, и, кажется, я уперся в тупик ![]()
Есть ли способ добавить эти заголовки напрямую в Discourse через файл конфигурации (или, что ещё лучше, в плагине), чтобы отправлять различные HTTP-заголовки, которые мы хотим протестировать и отправлять в среде разработки?
Или возможно заставить работать gem rack-cors? Если да, то где именно в плагине нужно добавить код?
Ссылка: RubyDoc.info: File: README – Documentation for rack-cors (0.4.0) – RubyDoc.info
Как уже упоминалось, все (многочисленные) попытки, описанные выше и в rubydocs, заканчиваются тем, что «ничего не происходит» — всё как обычно.
Даже пробовал временно забыть о CORS и просто добавить один заголовок HTTP-кэширования, но и это привело к тупику с моей стороны.
Думаю, все смеются над этими проблемами, связанными с CORS, включая меня; но если вы поделитесь, как добавить свои тестовые заголовки (CORS или нет) в среде разработки, это было бы очень кстати.
Спасибо.
