перенаправление завершается неудачно, когда вызывается после удаления файлов cookie приложения из браузера. - PullRequest
1 голос
/ 26 января 2020

В моем приложении django происходит сбой HttpResponseRedirection. Когда я делаю это в первый раз, он пропускает и перенаправляет. чтобы перезагрузить страницу, он входит в этот блок и не вызывает следующую функцию. Но если я щелкну левой кнопкой мыши на неудачном URL-адресе и открою его на новой странице, он будет перенаправлен на домашнюю страницу. Я пытался решить эту ошибку с 3 дней. может кто-нибудь предложить. Я могу дать больше информации, я не знаю, чего не хватает.

Редактирование: я получаю следующую ошибку:

Access to XMLHttpRequest at 'https://iamws-xxx.com/api/v1/windows/auth?redirecturl=https://dcms.yyy.com/dcmsisso/auth?next=/home' (redirected from 'https://dcms.yyy.com/getUser') from origin 'https://dcms.yyy.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

В моих settings.py:

MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]


CORS_ORIGIN_WHITELIST = [
"https://iamws.xxx.com",
"https://dcms.yyy.com"
]
CSRF_TRUSTED_ORIGINS = [
'iamws-xxx.com',
]

CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS=True

CORS_ALLOW_HEADERS = [
'Access-Control-Allow-Origin',
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'content-type',
'Pragma',
'Expires',
'Cache-Control',
]

и я также добавил cors-headers в установленное приложение и Внесены изменения и в промежуточное ПО.

1 Ответ

1 голос
/ 30 января 2020

Я предполагаю, что вы перешли к проблеме перенаправления и отлаживаете ошибку cors при доступе к своему API - в этом случае вам, вероятно, потребуется обновить заголовок вопроса.

Для будущих читателей - перед отладкой любой проблемы, связанной с ядром, убедитесь, что импорт в файле settings.py настроен в правильном порядке.

CorsMiddleware следует размещать как можно выше, особенно перед любым промежуточным программным обеспечением, способным генерировать ответы, такими как CommonMiddleware Джанго или WhiteNoiseMiddleware Уайтуаз. Если это не так, он не сможет добавить заголовки CORS к этим ответам. -

Как указано в pypi.org


Начать расследование

Используйте инструменты разработчика вашего браузера, чтобы исследовать вкладку сети.

Не совсем уверен, если текст ошибки, предоставленный вами, находится на вкладке терминала, журналов или сетей.

Выберите неудавшийся запрос на вкладке вашей сети и проверьте заголовки, Предварительный просмотр и ответ на запрос.

Это должно помочь вам понять, какой заголовок cors действительно запрашивается, и включили ли вы его в settings.py в CORS_ALLOW_HEADERS = [...]


Обнаружение блока политики CORS после перенаправление!

Я мог понять только часть вашей логики перенаправления c, но кажется, что вы используете IAM для какой-то аутентификации LDAP или OAuth. В любом случае вы можете убедиться, что работаете в рамках разрешенной и соответствующим образом назначенной политики CORS от подключенных систем.


Всего наилучшего!

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