Отправка Javascript fetch в Django
Я пытаюсь отправить полученный json в Django, не уверен, что делаю это правильно.
Я пытаюсь получить ответ API с помощью GET, затем внутри получения отправить каждый элемент в Django с помощью POST, чтобы заполнить мою базу данных (представления и все остальное уже настроено). Запрос на поиск API предоставляет несколько Json-ответов, поэтому я пытаюсь зациклить его.
Мой код выглядит следующим образом:
s_button.addEventListener('click', function(e){
var x = document.querySelector('#search');
var searching = "&search=" + x.value
// fetches by search
fetch(website + searching, requestOptions)
.then(response => response.json())
.then(result => {
var list = result;
for (let i = 1; i < 10; i++) {
console.log(result.results[i].name)
//here it changes table based on id from html
htmlname = "number" + i.toString();
// sets name to fetched name and id to fetched id
document.getElementsByClassName(htmlname)[0].innerHTML = result.results[i].name;
document.getElementsByClassName(htmlname)[0].id = result.results[i].id;
console.log("REQUEST:")
//this suppose to send to POST but it gives error!
$(document).ready(function() {
$.ajax({
method: 'POST',
url: '',
data: {'yourJavaScriptArrayKey': result.results[i],
'csrfmiddlewaretoken': '{{ csrf_token }}'},
'dataType': 'json',
success: function (data) {
//this gets called when server returns an OK response
console.log("it worked!");
},
error: function (data) {
console.log("it didnt work");
}
});
});
}
id = result.results[0]
})
.catch(error => console.log('error', error));
})
В терминале у меня ошибка Запрещено (CSRF-токен отсутствует или неверен.): / [25/Aug/2021 22:16:50] "POST / HTTP/1.1" 403 2519
в консоли просто POST http://127.0.0.1:8000/ 403 (Forbidden)
Возможно, это происходит из-за асинхронного выполнения, так как fetch уже завершился бы? Не уверен, как это правильно настроить, есть ли лучший способ отправить данные из fetch в базу данных (psql настроен в Django)
Благодарю за любую помощь!!!