Обратите внимание, что я пробовал несколько решений, перечисленных в 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: */*
Прикреплен снимок экрана заголовков запроса.
Пробовал с выборкой тоже, но тоже самоерезультат.
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) {
})