Моя ситуация немного похожа на этот вопрос , но он немного отличается, и нет ответа.
Мой бэкэнд это python, а front-end это Angular. Live-сервер - это Ngnix / Unix, а dev - это Windows. Каждый запрос просто отправляет запрос OPTIONS, с успешным ответом 200, но затем GET / POST не выполняются. Он работал отлично, и только на производственном сервере он не работает. В консоли нет ошибок CORS, а backend является отладочным = True для проверки, но не для проблем, поскольку очевидно, что get / post не выполняется.
На разрабатывающей машине все работает. Предыдущая команда добавила пользовательский заголовок «language»:
const clonedRequest = req.clone({ headers: req.headers.set('Language', lang) });
, который я заметил, никогда не отправляется при подключении к живому. В настройках разработки я вижу следующие заголовки:
Accept application/json
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Content-Length 21
Content-Type application/json
Host 127.0.0.1:9000
Language en
Origin http://localhost:4800
Referer http://localhost:4800/start/forgot-pwd
При подключении к продукту из внешнего интерфейса (в разработке или в производстве) заголовок Language не отправляется, но я сомневаюсь, что у него есть проблемы. Несмотря на это, мой CORS на бэкэнде выглядит так:
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'language',
'x-requested-with',
)