Библиотека Cash предоставляет метод ajax, который
позволяет выполнять асинхронные HTTP-запросы к серверу, аналогично
функции $.ajax из jQuery. Этот метод является гибким
инструментом для работы с сетевыми запросами, поддерживает настройку
параметров, обработку ошибок и управление временем ожидания ответа.
cash.ajax(url, options);
url — строка, указывающая адрес запроса.options — объект с параметрами запроса.Метод возвращает объект Promise, что позволяет
использовать .then() и .catch() для обработки
ответа или ошибки.
cash.ajax('/api/data', {
method: 'GET',
dataType: 'json'
}).then(response => {
console.log(response);
}).catch(error => {
console.error(error);
});
optionsОбъект options поддерживает множество настроек, которые
можно комбинировать для реализации любых сценариев работы с
HTTP-запросами.
methodОпределяет HTTP-метод запроса.
Допустимые значения:
'GET' — получение данных.'POST' — отправка данных.'PUT' — обновление данных.'DELETE' — удаление ресурсов.По умолчанию используется 'GET'.
cash.ajax('/api/items', {
method: 'POST',
data: { name: 'item1', quantity: 5 }
});
dataДанные, отправляемые на сервер.
POST, PUT, PATCH
данные передаются в теле запроса.GET данные автоматически сериализуются в
строку запроса (query string).Примеры:
// GET-запрос с параметрами
cash.ajax('/api/items', {
method: 'GET',
data: { page: 2, limit: 10 }
});
// POST-запрос с телом JSON
cash.ajax('/api/items', {
method: 'POST',
data: { name: 'New Item', price: 100 }
});
dataTypeОпределяет ожидаемый формат ответа.
Поддерживаемые значения:
'json' — объект JSON.'text' — обычный текст.'html' — HTML-код.'xml' — XML-документ.cash.ajax('/api/items', {
method: 'GET',
dataType: 'json'
}).then(data => {
console.log(data); // автоматически распарсенный объект
});
headersПозволяет задавать дополнительные HTTP-заголовки запроса.
cash.ajax('/api/items', {
method: 'GET',
headers: {
'Authorization': 'Bearer token123',
'Accept': 'application/json'
}
});
timeoutМаксимальное время ожидания ответа сервера в миллисекундах. Если
время превышено, промис отклоняется с ошибкой timeout.
cash.ajax('/api/items', {
method: 'GET',
timeout: 5000
}).catch(error => {
if (error === 'timeout') {
console.warn('Сервер не ответил вовремя');
}
});
success и errorХотя метод возвращает промис, Cash также поддерживает колбэки
success и error для совместимости с
классическим стилем.
cash.ajax('/api/items', {
method: 'GET',
success: response => console.log('Данные:', response),
error: err => console.error('Ошибка:', err)
});
beforeSendФункция, вызываемая перед отправкой запроса. Позволяет модифицировать объект запроса или отменить его.
cash.ajax('/api/items', {
method: 'GET',
beforeSend: xhr => {
xhr.setRequestHeader('X-Custom-Header', 'value');
}
});
cacheБулевый параметр, определяющий использование кэширования для GET-запросов.
true — кэширование включено.false — кэширование отключено.cash.ajax('/api/items', {
method: 'GET',
cache: false
});
Метод ajax возвращает промис, который упрощает работу с
асинхронными данными:
cash.ajax('/api/items', { method: 'GET', dataType: 'json' })
.then(data => {
data.forEach(item => console.log(item.name));
})
.catch(err => console.error('Ошибка запроса:', err));
Также можно использовать async/await:
async function fetchItems() {
try {
const items = await cash.ajax('/api/items', { dataType: 'json' });
console.log(items);
} catch (err) {
console.error('Ошибка запроса:', err);
}
}
dataType не указан, Cash попытается угадать формат ответа
на основе заголовков сервера.fetch, что обеспечивает высокую
производительность и поддержку промисов.Метод ajax библиотеки Cash обеспечивает полный контроль
над HTTP-запросами и легко интегрируется с современными практиками
асинхронного программирования, включая промисы и
async/await. Его гибкость позволяет работать с разными
форматами данных, настраивать заголовки, таймауты и обработку ошибок,
создавая надёжные и масштабируемые клиентские приложения.