CORS несовместим в трех приложениях - PullRequest
0 голосов
/ 09 марта 2019

У меня есть аналитический сервер (matomo), который прекрасно отслеживает основной «живой» сайт. В свою очередь, у меня есть еще одно «портал» веб-приложения, которое успешно выполняет http-вызовы на сервер аналитики. Сейчас я пытаюсь переоборудовать идентичные звонки на еще один существующий сайт. На этом сайте создается контент, который отображается на сайте Live. Этот последний сайт представляет собой огромный сайт nodejs + angularjs, который находится в другом центре обработки данных от другого поставщика. Он успешно выполняет вызовы уровня API REST с другим поддоменом. Однако вызов вышеупомянутой аналитики вызывает ошибки CORS в большом приложении. FireFox выдает следующую ошибку: «(Причина: отсутствует токен« авторизация »в заголовке CORS« Access-Control-Allow-Headers »из канала предварительной проверки CORS)» Я не понимаю, почему это работает на портале, но не создатель контента. Все позади CloudFlare, и Cloudflare заставляет всех быть звонками https. Каждое приложение использует поддомен одного и того же домена. Создатель контента успешно звонит на api.mydomain.com. Портал успешно звонит на analytics.mydomain.com и api.mydomain.com. Сайт аналитики использует php / apache. Портал использует php / angularjs. Поставщик контента использует nodejs / angularjs. Живой сайт использует nodejs / angular 2.x. Любое понимание будет оценено.

1 Ответ

0 голосов
/ 11 марта 2019

Оказывается, некоторые заголовки не были возвращены. Другие программы, по-видимому, не заботились, но третья заботилась, хотя POST не выполнялся. Я добавил следующую информацию в файл apache2 conf:

Заголовок всегда установлен Access-Control-Max-Age "1000" Заголовок всегда устанавливает заголовки Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding" Заголовок всегда устанавливает Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...