fetchAPI не возвращает ответ, так как then () пропускается - PullRequest
0 голосов
/ 03 мая 2020

Я использую fetchAPI для выполнения пост-звонка на мой маршрутизатор, который будет извлекать данные вошедшего в систему пользователя.

Ниже приведен код для того же самого

submit_button.addEventListener('click',getuser)

function getuser()
{
console.log('clicked')

const username=uname_button.value;
const password=age_button.value;
console.log('username'+username)
console.log('password'+password)
 const user = {
    email: username,
    password: password

};
  let options = {
    method: 'post',
    headers: {
      'Content-Type': 'application/json;charset=utf-8'
    },
    body: JSON.stringify(user)
  }

fetch('/users', options)
  .then(function(response) {
  console.log(response)
  })

}

Когда я выполняю это в браузере, данные отправляются успешно, но ответ не печатается, даже не обещание. Когда я добавил точки отладки, я мог видеть, что контроль не идет внутрь блока then ()? Может кто-нибудь помочь мне, как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 03 мая 2020

добавьте блок catch после этого, чтобы увидеть, произошла ли какая-либо ошибка, следующим образом:

fetch('/users', options)
    .then(function(response) { console.log(response) })
    .catch(function(error) { console.log(error) })
0 голосов
/ 03 мая 2020

Помните, что fetch возвращает Promise, содержащий объект Response. Чтобы извлечь содержимое тела JSON из ответа, мы используем метод json ().

fetch('/users', options)
 .then(response => response.json())
 .then(data => console.log(data))
 .catch((error) => {
   console.error('Error:', error);
 });
...