CORS-заголовок в запросе OPTIONS?
Я пытаюсь создать веб-приложение с помощью Angular и Django, но у меня возникла проблема с CORS-заголовками.
Насколько я понимаю, чтобы включить в запрос данные cookie из фронтенда (такие как токен csrf и идентификатор сессии), нужно установить в запросе значение withCredentials равным true. Таким образом, GET-запрос выглядит как this.http.get(this.url, { withCredentials: true });
. Затем браузер говорит
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at xxx. (Reason: expected ‘true’ in CORS header ‘Access-Control-Allow-Credentials’).
Я могу исправить это для GET-запроса, добавив заголовок в ответ с помощью response["Access-Control-Allow-Credentials"] = "true"
, но проблема возникает, когда я делаю POST-запрос. В этом случае фронтенд автоматически отправляет запрос OPTIONS перед POST, который, насколько я понимаю, является стандартным и используется для проверки того, что бэкенд разрешает публиковать. Однако я не могу установить CORS-заголовок для ответа на OPTIONS-запрос, поэтому, по сути, я не могу отправить POST-запрос.
Есть ли способ установить заголовок для ответов OPTIONS или я вообще что-то делаю неправильно?