Альтернатива "curl" Этот код использует функцию fetch для выполнения запроса POST на указанный URL с некоторыми данными.
Данные отправляются как строка JSON в теле запроса. Затем ответ анализируется как JSON и выводится на консоль.
Код: Выделить всё(async () => {
const res = await fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
body: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1
}),
headers: {
'Content-type': 'application/json; charset=UTF-8'
}
})
const answer = await res.json()
console.log(answer)
})()
Вот пример того, как сделать запрос GET к конечной точке API с помощью fetch():
Код: Выделить всёfetch('https://api.sample.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error))
Этот код отправляет запрос GET на указанную конечную точку API и регистрирует возвращенные данные в консоли.
Вот пример того, как сделать запрос POST с данными JSON с помощью fetch() :
Код: Выделить всёfetch('https://api.example.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
key1: 'value1',
key2: 'value2'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error))
Этот код отправляет запрос POST с данными JSON на указанную конечную точку API и регистрирует возвращенные данные в консоли.
Вот примеры того, как можно использовать объект XMLHttpRequest для создания HTTP-запросов, аналогичных curl :
Код: Выделить всёconst xhr = new XMLHttpRequest()
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText)
}
}
xhr.open('GET', 'https://yesno.wtf/api', true)
xhr.send()
Этот код создает новый объект XMLHttpRequest , устанавливает прослушиватель событий для события readystatechange, открывает соединение с указанным URL-адресом с помощью метода GET и отправляет запрос.
При получении ответа прослушиватель событий записывает текст ответа в консоль.
https://itsourcecode.com/javascript-tut ... avascript/