подскажите пожалуйста как djngo и frontend обмениваются csrf-токеном

Есть фронтенд на angular и бекенд на django2.2.2. Они находятся на разных серверах. Фронтенд состоит из одной странички, на которой есть форма регистрации. Я хотел бы её подписать csrf-токеном, отправить и проверить наличие токена на стороне сервера.
Вот что я пытался сделать чтобы реализовать эту идею.
view:
 from django.shortcuts import render
from django.contrib.auth.models import User
from django.http import JsonResponse
from django.views.decorators.csrf import ensure_csrf_cookie
@ensure_csrf_cookie
def get_csrf(request):
    response = JsonResponse([{"cookie_set": True}], safe=False)
    return response
def registration(request):
    # some payload
    response = JsonResponse([{"registration_successful": True}], safe=False)
    return response

На фронтенде я при загрузке странички с формой отправляю запрос, на который отвечает контролер get_csrf(). Тут по моему понимаю на фронт должен вернуться csrf-токен в виде куки.

далее при отправке формы(то есть когда пользователь кликает по кнопке submit) я мог бы извлечь куку с клиента и отправить её вместе с остальными POST-параметрами в контроллер registration(). В случае её отсутствия контроллер просто не обработает данные формы.

Проблема в том, что кука не устанавливается после первой загрузки странички на фронте. И я не понимаю почему, ведь если в адресную строку браузер вбить:
127.0.0.1:8000/app_auth/get_csrf

, то кука устанавливается.

Подскажите пожалуйста в чём я ошибаюсь и куда мне двигаться. Только пожалуйста не предлагайте высокоуровневые решения потому что я хотел бы разобраться в механизме вообще