Получение отменено на сервере действий asyn c - PullRequest
0 голосов
/ 16 марта 2020

У меня есть запрос на выборку, например

fetch(`http://localhost:4000/test`, {
  method: 'GET',
  mode: 'cors',
  cache: 'no-cache',
  headers: {
    'Content-Type': 'application/json'
  }
})
.then(result => console.log('success'))
.catch(error => console.log('error', error));

и nodejs express router (express -promise-router) для запроса

this.router.get('/test', (request: Request, response: Response) => {
  response.status(200).send({'status': 'ok'});
});

Когда вызывается fetch, успех регистрируется. Так что это хорошо. Но когда я изменяю функцию маршрутизатора nodejs на asyn c, например

this.router.get('/test', (request: Request, response: Response) => {
  return asyncFunction().then(result => response.status(200).send({'status': 'ok'}));
});

Выборка отменяется, и в журнале консоли отображается TypeError: Failed to fetch.

Когда я вызываю / test API с URL браузера или почтальона я получаю успешный результат. Я не могу понять, почему выборка терпит неудачу. (Также попробовал это с Ax ios с тем же результатом).

1 Ответ

0 голосов
/ 16 марта 2020

Я был не на том пути с проблемой извлечения. Проблема была связана не с извлечением, а с событием, в котором вызывается извлечение. В конце метода мне понадобился event.preventDefault (), чтобы событие было остановлено и выборка была обработана правильно.

...