#symfony #cors #nelmioapidocbundle
Вопрос:
Я создал API с помощью symfony и FOSRestBundle и подключился к нему с помощью интерфейса VueJS. Это прекрасно работает локально. Но, оказавшись в сети, некоторые маршруты возвращают ошибку CORS.
Доступ к XMLHttpRequest по адресу ‘https://api.domain.com/route» от происхождения «https://front-end.com/route» был заблокирован политикой CORS: заголовок «Доступ-Контроль-Разрешить-Происхождение» содержит несколько значений «https://front-end.com, https://front-end.com», но разрешен только один.
Очевидно, поэтому сервер возвращает заголовок дважды. И я понятия не имею, почему, потому что я определил это только один раз.
Я использую Nelmio для определения CORS.
Моя конфигурация Nelmio в /config/пакеты/nelmio_cors.yaml
nelmio_cors:
defaults:
origin_regex: true
allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
allow_headers: ['Content-Type', 'Authorization']
expose_headers: ['Link']
max_age: 3600
paths:
'^/': ~
В файле .env :
###> nelmio/cors-bundle ###
CORS_ALLOW_ORIGIN='^https?://(front-end.com|localhost|127.0.0.1)(:[0-9] )?
Это отлично работает локально, но однажды на моем общем хостинге он возвращает ошибку, показанную выше. И что я нахожу странным, некоторые маршруты работают нормально и возвращают ответы. Но другие маршруты возвращают ошибку CORS, даже если источник не изменился.
Пожалуйста, кто-нибудь сталкивался с этой проблемой раньше? Пожалуйста, помогите мне.
Комментарии:
1. Возможно, ваш обратный прокси-сервер общего хостинга делает какие-то странные вещи. Таким образом, вполне возможно, что ваше приложение отправляет правильный заголовок.
###< nelmio/cors-bundle ###
Это отлично работает локально, но однажды на моем общем хостинге он возвращает ошибку, показанную выше. И что я нахожу странным, некоторые маршруты работают нормально и возвращают ответы. Но другие маршруты возвращают ошибку CORS, даже если источник не изменился.
Пожалуйста, кто-нибудь сталкивался с этой проблемой раньше? Пожалуйста, помогите мне.
Комментарии:
1. Возможно, ваш обратный прокси-сервер общего хостинга делает какие-то странные вещи. Таким образом, вполне возможно, что ваше приложение отправляет правильный заголовок.