fetch()
— это глобальный метод объекта window
, который позволяет нам отправлять веб-запросы к API и извлекает набор данных, структурированных во вложенном хеше, известном как JSON. В JavaScript функция fetch встроена, она позволяет запрашивать любой URL или API для получения данных.
Базовая структура fetch
Выборка использует обещания javascript для обработки обратных вызовов. Вот базовая структура функции fetch()
:
fetch(`Use URL of the data source`) .then((response)=> { return response.json(); }).then((json) => { console.log(json) })
Функция fetch()
с указанным выше URL-адресом API возвращает объект, содержащий запрашиваемый вами источник данных. Вызовите метод .then()
, возьмите ответ, и fetch вернет нам ответ. Затем вы должны вызвать метод .json()
для ответа, чтобы отобразить ответ API в виде JSON; это вернет обещание. Второй.then()
получает данные и передает объект Javascript с ключами и значениями. Каждый .then()
возвращает новое обещание; передача информации из одного промиса в следующий .then()
— это то, что вы вернули в предыдущем .then()
.
Я делаю запрос, который в основном является обещанием. Я обещаю, что когда я вернусь с сервера, я дам тебе кое-что. Когда обещание будет выполнено, вы получите ответ. Вы можете превратить этот ответ из строки в Javascript.
Запросы
С помощью fetch() вы хотите сделать больше, чем просто получить данные с сервера. Вы можете публиковать, удалять и обновлять данные на сервере. Для этого вам нужно добавить второй параметр в метод выборки и использовать метод HTTP-запроса.
Тип HTTP-запроса:
GET
- вывести список всех данныхGET
— отображать конкретные данные (`/:id`)POST
- создать данныеPUT
- обновить конкретную статьюDELETE
- удалить конкретную статью
Второй параметр — это объект, который имеет разные ключи. Для целей этого блога я буду использовать ключевой метод POST
.
fetch('https://tanukadas.com/some_blogs', { method: 'POST' })
Заголовки запроса
Далее нам нужно добавить заголовки. Заголовки — это в основном информация, которую вы отправляете в браузер. Это то, как вы общаетесь с сервером, описывая транзакцию, которую собираетесь совершить. Внутри объекта заголовка установите 'Content-Type'
на 'application/json'
. Он упоминает контент, который он будет отправлять, в данном случае его JSON, а контент, который он принимает обратно, — это JSON. Это тип преобразования, который мы имеем с заголовками.
fetch('https://tanukadas.com/some_blogs', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } })
Другой тип контента, который вы можете отправить, это текст/javascript, текст/html, текст/css, текст/обычный текст и т. д. Перейдите по следующей ссылке, если вы хотите узнать о различных типах контента.
Тело
Следующим шагом является передача данных блога (используемый здесь пример) в теле. Передайте его как JSON; дайте блогу имя, в данном случае это имя blog_4. Важно установить его как JSON.stringify
, закодировать объект, который вы передаете.
fetch('https://tanukadas.com/some_blogs', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({name: 'blog_4'}) })
Всякий раз, когда вы отправляете данные JSON на сервер, помните, что заголовок должен соответствовать правильному типу контента, а тело должно быть строковым. По сути, вы не можете просто отправить объект Javascript, вы должны преобразовать его в строку JSON.
Пока что эта функция только отправляет запрос на выборку, она еще не обрабатывает ответ. Чтобы получить ответ от выборки, вызовите метод .then
, и он вернет другое обещание.
fetch('https://tanukadas.com/some_blogs', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({name: 'blog_4'}) }).then((response)=> { return response.json(); }).then((blogData) => { console.log(blogData) })
Эта функция делает выборку, публикует определенный блог с правильным названием. Затем он получает ответ, преобразует его в Javascript и записывает в консоль опубликованные данные.
Предыдущие сообщения:
Как выделить свой профиль в LinkedIn и получить больше возможностей в 2020 году?
Как создавать простые формы в React?
Как решить вопрос интервью по обнаружению петель? | Crack The Coding Interview (6-е издание)
Markdown — более простой и быстрый в изучении язык разметки
Структура данных — связанный список| ПРАКТИКА ОДНОСвязных списков (LeetCode)
Отладка кода JS с помощью вкладки DevTool Network