Отправляем HTTP-запросы из Vue.js

Отправляем HTTP-запросы из Vue.js

По умолчанию в браузер встроена функция под названием fetch() для отправки HTTP-запросов. Она есть во всех браузерах и вам не нужно устанавливать дополнительные пакеты.

Если вы предпочитаете использовать сторонние библиотеки, такие как Axios (https://github.com/axios/axios), то вы можете использовать и их.

Например, вы можете заменить код с функцией fetch() на аналогичный с использованием подобной библиотеки.

Вместо этого кода:

fetch('https://sergeyem.ru', {

  method: 'POST',

  headers: {

    'Content-Type': 'application/json',

  },

  body: JSON.stringify({

    name: this.name,

    rating: this.rating,

  }),

}).then(response => {

     /* eslint-disable no-console */

     console.log(response);

     /* eslint-enable no-console */

})

  .catch(error => {

     /* eslint-disable no-console */

     console.log(error);

     /* eslint-enable no-console */

});

Вы можете переписать этот код на Axios:

import axios from 'axios'; // at the start of your <script> tag, before you "export default ..."

...

axios.post('https://sergeyem.ru', {

  name: this.name,

  rating: this.rating,

}).then(response => {

     /* eslint-disable no-console */

     console.log(response);

     /* eslint-enable no-console */

})

  .catch(error => {

     /* eslint-disable no-console */

     console.log(error);

     /* eslint-enable no-console */

});

Как можно увидеть, здесь вам нужно писать гораздо меньше кода. Библиотека автоматически назначит вам COntent-Type в заголовки и сама сконвертирует данные в формат JSON.

Но, как и говорилось ранее, вам потребуется устанавливать в проект дополнительный пакет, что может существенно увеличить общий размер вашего приложения.

fetch() возвращает Promise, т.е. затем вы можете использовать then(), catch() и async/await. В случае с Axios, всё то же самое - она тоже возвращает Promise.

Популярное

Самые популярные посты

Как быть максимально продуктивным на удалённой работе?
Business

Как быть максимально продуктивным на удалённой работе?

Я запустил собственный бизнес и намеренно сделал всё возможное, чтобы работать из любой точки мира. Иногда я сижу с своём кабинете с большим 27-дюймовым монитором в своей квартире в г. Чебоксары. Иногда я нахожусь в офисе или в каком-нибудь кафе в другом городе.

Привет! Меня зовут Сергей Емельянов и я трудоголик
Business PHP

Привет! Меня зовут Сергей Емельянов и я трудоголик

Я программист. В душе я предприниматель. Я начал зарабатывать деньги с 11 лет, в суровые 90-е годы, сдавая стеклотару в местный магазин и обменивая её на сладости. Я зарабатывал столько, что хватало на разные вкусняшки.

Акция! Профессиональный разработчик CRM за 2000 руб. в час

Выделю время под ваш проект. Знания технологий Vtiger CRM, SuiteCRM, Laravel, Vue.js, Golang, React.js. Предлагаю варианты сотрудничества, которые помогут вам воспользоваться преимуществами внешнего опыта, оптимизировать затраты и снизить риски. Полная прозрачность всех этапов работы и учёт временных затрат. Оплачивайте только рабочие часы разработки после приемки задачи. Экономьте на платежах по его содержанию разработчика в штате. Возможно заключение договора по ИП. С чего начать, чтобы нанять профессионального разработчика на full-time? Просто заполните форму!

Telegram
@sergeyem
Telephone
+4915211100235