XMLHttpRequest не отправляет куки на запрос кросс-домена - PullRequest
0 голосов
/ 03 июня 2019

Обратите внимание, что я пробовал несколько решений, перечисленных в SO, но все равно не получилось.Следовательно, отправка вопроса в качестве крайней меры.

Я создаю расширение Chrome, которое будет работать на нескольких доменах.Пользователь сначала должен войти в мой сайт, который будет удалять куки в браузере пользователя.Затем расширение будет связываться с моим сервером (через межсайтовые домены) вместе с пользовательскими файлами cookie, чтобы помочь мне идентифицировать пользователя.

Я пытался добавить withCredentials: true, но безуспешно.Это мой код: -

var xhr = new XMLHttpRequest(async=true);
xhr.open('POST', CROSS_DOMAIN_URL, true);
xhr.withCredentials = true;
xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 201) {
         // do something
    }
}
xhr.send(JSON.stringify({
    'data': 'abcd'
}));

Также пытался установить dataType как jsonp, но запрос заблокирован.

У меня есть решение, в котором мне нужно cookies и webRequest разрешение.Я перехватываю запрос и вручную добавляю в него куки. НО Я не хочу использовать дополнительные разрешения.

Как я могу отправить куки через междоменный запрос?

PS: я использую Django в качествевеб-сервер и как CORS библиотека, которая добавляет следующие заголовки

Заголовки ответа

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: chrome-extension://jahbloglfdbckehlhangdfielgmppcab

Заголовки запроса

Accept: */*

Прикреплен снимок экрана заголовков запроса.

enter image description here

Пробовал с выборкой тоже, но тоже самоерезультат.

fetch(CROSS_DOMAIN_URL, {
    credentials: 'include',
    mode: 'cors',
    async: false,
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        'data': 'abcd'
    })
})
.then(function(data) {

})
.catch(function(error) {

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...