dmc1989
@dmc1989

Как делать нормальный запрос в fetch?

Решил попробовать fetch, но вот когда пытаюсь получить данные ответа сервера, то получается не очень красивый код. Можно ли как-то лучше написать?
document.querySelector('#login-form').onsubmit = function (e) {
      e.preventDefault();
      fetch('/login', {
        method: 'POST',
        body: 'Hello'
      }).then(function(response) {
        return response.json();
      }).then(function(result) {
        alert(result.data);
      });
    }
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
rockon404
@rockon404
Frontend Developer
Можно использовать axios
axios.post('/login', { body: 'Hello' })
  .then(function(res) {
    alert(res.data);
  });


Запросы к северу хорошо оформлять отдельными функциями:
const login = options => axios.post('/login', options);

ES5 версия:
const login = function(options) {
  return axios.post('/login', options);
}


Ее использование в коде:
login(options).then(res => alert(res.data));

ES5 версия:
login(options).then(function(res) {
  alert(res.data);
});

в асинхронной функции:
async () => {
  try {
    const { data } = await login(options);
    /* some other logic */ 
  } catch e {
    console.log('Server request error:', e);
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы