Передайте токен Django CSRF в Angular с помощью CSRF_COOKIE_HTTPONLY
В Джанго, когдаCSRF_COOKIE_HTTPONLY
если для этого параметра установлено значение True, файл cookie CSRF получает флаг httponly, что желательно с точки зрения безопасности, но нарушает стандартное угловое решение добавления этого файла cookie в httpProvider следующим образом:
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
В Django 1.9 был обходной путь, при котором вы могли просто передать cookie непосредственно в приложение, поместив его в шаблон:
<script>
window.csrf_token = "{{ csrf_token }}";
</script>
И положить это в угловое приложение:
angularApp.config(["$httpProvider", function($httpProvider)e {
$httpProvider.defaults.headers.common["X-CSRFToken"] = window.csrf_token;
}]
К сожалению, это не работает для одностраничных угловых приложений в Django 1.10+, поскольку файл cookie CSRF изменяется после каждого запроса. Как вы делаете почтовые запросы от Angular до Django 1.10+ сCSRF_COOKIE_HTTPONLY
установка на?
NB: Отключение защиты CSRF не является приемлемым ответом.