Отправьте токен X-CSRF на сервер Django с помощью запроса XHTTP или jQuery Ajax - PullRequest
0 голосов
/ 17 февраля 2020

Я пытался сделать POST для моего Django приложения через XHTTP-запрос и jQuery без правильного результата вообще.

Дело в том, что приложение Django на одном из моих поддоменов, и веб-приложение находится в другом, не являющемся частью приложения Django, только отдельным приложением.

Я читал документы, но ничего из этого не работает.

Все мои субдомены находятся в списке разрешенных хостов и в белом списке CORS ORIGIN, и петиция работает правильно с GET, но POST возвращает мне ошибку Forbidden 403, сообщающую, что CSRF Cook ie не найден.

Это код моей петиции.

var petition = new XMLHttpRequest();
petition.open('POST','http://localhost:8000/login/',true);
petition.setRequestHeader("X-CSRFToken",sessionStorage["csrf_token"]);
petition.send()

Я уже сохранил повар CSRF ie в хранилище сеансов с этой функцией.

function storeCSRFToken(){
    var token;
    $.ajax({
        url : 'http://localhost:8000/token',
        type: "GET",
        dataType : "json",
        success: function( data ){
            token = data.csrf_token;
            sessionStorage['csrf_token'] = token;
        }
    });
}

Любая подсказка того, что идет не так?

...