У меня включены сеансы в Django для использования инфраструктуры аутентификации Django.
Со страницы html, обслуживаемой Django, и после аутентификации как пользователя с достаточными разрешениями я пытаюсь отправить запрос PATCH
через функцию JQuery ajax()
, и я получаю ошибки HTTP 403 с подробным ответом CSRF Failed: CSRF token missing or incorrect.
Что я сделал до сих пор:
Я включаю правильный токен csrfв поле заголовка X-CSRF-TOKEN.Я установил SESSION_COOKIE_HTTPONLY = False
.
Файл cookie, отправляемый в запросе ajax, включает идентификатор сеанса.Если я избавлюсь от этого sessionid, запрос будет выполнен успешно. Для этого я либо удаляю куки сеанса в браузере, либо редактирую запрос PATCH в инструментах разработчика браузера и повторно отправляю его, удаляя sessionid из поля заголовка Cookie
.Очевидно, мне нужно повторно войти в систему, как только я обновлю страницу, но пока я могу PATCH
до глубины души.
До сих пор я не мог выяснить, почему присутствие sessionidcookie заставляет Джанго отклонить запрос.