Метод .ajax() в Umbrella JS представляет собой
универсальный инструмент для выполнения HTTP-запросов к серверу. Он
позволяет отправлять данные, получать ответы в различных форматах и
управлять асинхронными процессами без необходимости напрямую
использовать XMLHttpRequest или fetch. Этот
метод обеспечивает простоту синтаксиса и удобство настройки параметров
запроса.
u.ajax(url, options);
url — строка с адресом, на который отправляется запрос.
Может быть абсолютным или относительным.options — объект с параметрами запроса, который
управляет поведением .ajax().options"GET" — получение данных."POST" — отправка данных на сервер."PUT", "PATCH", "DELETE" —
модификация или удаление ресурсов.Пример:
u.ajax('/api/users', {
method: 'POST',
data: { name: 'John', age: 30 }
});
FormData. Umbrella JS автоматически сериализует объект в
application/x-www-form-urlencoded.Примеры:
// Объект
u.ajax('/submit', {
method: 'POST',
data: { username: 'admin', password: '1234' }
});
// FormData
const formData = new FormData();
formData.append('file', fileInput.files[0]);
u.ajax('/upload', {
method: 'POST',
data: formData
});
u.ajax('/api/data', {
method: 'GET',
headers: {
'Authorization': 'Bearer token123',
'Content-Type': 'application/json'
}
});
"json" — автоматически парсит JSON."text" — возвращает строку."blob" — для бинарных данных, файлов."document" — возвращает HTML или XML-документ.Пример:
u.ajax('/data.json', {
method: 'GET',
responseType: 'json'
}).then(response => {
console.log(response);
});
u.ajax('/slow-endpoint', {
method: 'GET',
timeout: 5000
}).catch(error => {
console.error('Запрос превысил лимит времени', error);
});
true (асинхронно).u.ajax('/sync-endpoint', {
method: 'GET',
async: false
});
Метод .ajax() возвращает Promise, что
позволяет использовать .then() и .catch() для
обработки успешных и неуспешных ответов.
u.ajax('/api/items', {
method: 'GET',
responseType: 'json'
})
.then(data => {
console.log('Данные получены', data);
})
.catch(error => {
console.error('Ошибка запроса', error);
});
Объект error содержит подробную информацию о причине
отказа, включая код статуса HTTP (status) и текстовое
описание (statusText).
Отправка JSON на сервер с обработкой ответа:
u.ajax('/api/save', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
data: JSON.stringify({ title: 'Umbrella JS', published: true }),
responseType: 'json'
})
.then(response => console.log(response))
.catch(err => console.error(err));
Загрузка файла с прогрессом:
const file = document.querySelector('#file').files[0];
const formData = new FormData();
formData.append('file', file);
u.ajax('/upload', {
method: 'POST',
data: formData
}).then(response => console.log('Файл загружен', response));
Umbrella JS позволяет расширять функциональность .ajax()
через промежуточные обработчики, пользовательские заголовки и гибкое
управление асинхронностью.
responseType, чтобы избежать лишнего
парсинга данных..catch() обеспечивает надежность
работы приложения.FormData позволяет легко отправлять файлы
и формы без ручного преобразования.Метод .ajax() является ядром работы с сетью в Umbrella
JS, обеспечивая минималистичный, но мощный интерфейс для HTTP-запросов,
полностью совместимый с современными стандартами асинхронного
JavaScript.