Если fetch возвращает объект с несколькими атрибутами (т.е. object.exists и object.message), как я могу использовать их после завершения выборки?
После получения объекта он прекрасно его регистрирует, и я могу видеть все атрибуты объекта. Я даже могу изменить html на странице, используя все атрибуты.
login_button=document.getElementById('submit-login');
login_form=document.getElementById('login-form');
message=document.getElementById('message');
login_button.addEventListener('click',async (e)=> {
e.preventDefault();
form=new FormData(login_form);
let response = await fetch('/',{
method:'POST',
body: form,
headers:{
'X-CSRFToken':document.cookie,
// 'X-Requested-With': 'XMLHttpRequest',
},
});
let processed_response=await response.json();
console.log(processed_response);
if (processed_response.exists){
console.log('success');
message.classList.remove('failure');
message.classList.add('success');
}
else{
message.classList.remove('success');
message.classList.add('failure');
}
message.firstElementChild.innerHTML=processed_response.message;
setTimeout((processed_response) => {
window.location=processed_response.next;
},1000);
});
Однако, когда я пытаюсь использовать функцию setTimeout, она выдает следующее:
Uncaught TypeError: can't access property "next", processed_response не определен
В ответе записано следующее:
Response { type: "basic", url: "http://127.0.0.1:8000/", redirected: false, status: 200, ok: true, statusText: "OK", заголовки: Заголовки, body: ReadableStream, bodyUsed: false }
и журналы обработанного_ответа:
Object { exists: false, next: "", сообщение: "login unsuccessful" }
.
И у меня не получается использовать атрибут из объекта в функции setTimeout. Может быть, я что-то упускаю. Это мой первый опыт работы с async и fetch/promises, так что извините за некачественный код.
Заранее спасибо.
во-первых, возвращает ли ответ что-то, если нет, то проблема может быть связана с сервером.
просьба предоставить больше информации.