40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
- Современный стандарт на замену [XMLHTTPRequest](XMLHTTPRequest.md)
|
|
- Поддерживается всеми современными браузерами
|
|
- Работает на промисах
|
|
## Пример кода
|
|
Чуть чуть было написано в [ECMAScript](../Фронтенд/ECMAScript.md)
|
|
```JavaScript
|
|
async function getData() {
|
|
const url = "https://example.org/products.json";
|
|
try {
|
|
const response = await fetch(url);
|
|
if (!response.ok) {
|
|
throw new Error(`{response.status}`);
|
|
}
|
|
|
|
const json = await response.json();
|
|
console.log(json);
|
|
} catch (error) {
|
|
console.error(error.message);
|
|
}
|
|
}
|
|
```
|
|
Отправление данных через POST
|
|
```JavaScript
|
|
async function checkPoint(x, y, r) {
|
|
const pointData = {x: x, y: y, r: r};
|
|
|
|
const response = await fetch("/api/check", {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json"
|
|
},
|
|
body: JSON.stringify(pointData)
|
|
});
|
|
|
|
const res = await response.json();
|
|
console.log(res.hit);
|
|
}
|
|
```
|
|
## Как работает
|
|
- Получение данных работает в два этапа: асинхронное получение ответа, затем асинхронное получение тела (данные могут быть большими и передаться потоком - Stream) |