Запрещено (CSRF cookie не установлен.): для django login from javascript [duplicate]

Я пытаюсь получить доступ к логину сервера django с помощью javascript

  axios.get('http://localhost:8010/get_csrf_token/').then((res)=>{
        console.log(res.data['csrf_token']);
        var data = {username:'admin@test.com',password:'testtest',
    
    }
    axios.defaults.headers.common['X-CSRF-TOKEN'] = res.data['csrf_token'];// set csrf_token in header.
    axios.post('http://localhost:8010/login/',data).then(() =>{
      console.log("test");
    })
  })

Однако этот код показывает ошибку, приведенную ниже.

Я установил заголовок X-CSRF-TOKEN, но он требует cookie?

Этот django-сервер не является сторонним, а находится под моим контролем, поэтому я могу изменять настройки djang-сервера.

Как я могу решить эту проблему?

Forbidden (CSRF cookie not set.): /login/
[WARNING][240326 200329] Forbidden (CSRF cookie not set.): /login/
[26/Mar/2024 20:03:29] "POST /login/ HTTP/1.1" 403 2882

обновить

Я проверил, установлен ли cookie, и установил withCredentials true. но все равно Forbidden (CSRF cookie not set.)

  axios.get('http://localhost:8010/get_csrf_token/').then((res)=>{
    document.cookie = `csrftoken=${res.data['csrf_token']}`;
    console.log("cookie:",document.cookie); // to confirm cookie is set here.
    var data = {username:'admin@test.com',password:'testtest'}
    axios.defaults.headers.common['X-CSRF-TOKEN'] = res.data['csrf_token'];
    axios.defaults.withCredentials = true
    axios.post('http://localhost:8010/login/',data,{
      withCredentials: true,
    }).then(() =>{
      console.log("test");
    })
  })
Вернуться на верх