Django CORS из расширения для хрома
<Это странно, потому что у меня следующая конфигурация CORS HEADERS:
CORS_ALLOW_ALL_ORIGINS = True
CSRF_TRUSTED_ORIGINS = ['chrome-extension://*']
CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken'
)
Я думал, что с такой конфигурацией он должен работать, потому что, насколько я знаю, я разрешаю CORS от всех источников (я знаю, что разрешать все CORS небезопасно, но это в тестовых целях)
(Я использовал django-cors-headers: https://pypi.org/project/django-cors-headers/):
Вот как я делаю выборку из моего расширения:
function makeRequest(value) {
// Send data to server
url = 'https://my-test-app.herokuapp.com/smoke/add/';
let request = new Request(url, {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'text/plain',
'X-CSRFToken': value.csrftoken,
},
body: JSON.stringify({
info: value,
}),
});
return request;
}
serverRequest = makeRequest(contactData);
fetch(serverRequest)
.then((response) => response.json())
.then((data) => {
if (data.error !== undefined) {
sendResponse({ error: 'Ocurrió un error' });
} else {
// data['leadId'] = data.contact.lead;
data.contact['csrftoken'] = request.csrftoken;
console.log(data);
sendResponse(data.contact);
}
});
Спасибо всем за помощь!