Привет всем! У меня возникла проблема с получением данных из AJAX-запроса. Я использую такую функцию для отправки запросов на сервер:
function отправитьЗапрос(действие, данные, обработчик) {
$.ajax({
url: 'обработчик.php',
method: 'POST',
data: { метод: действие, параметры: данные },
success: function(ответ) {
// Как мне здесь получить доступ к ответу?
}
});
}
Но я не могу использовать полученные данные вне функции обратного вызова. Пробовал объявлять переменную снаружи и присваивать ей значение внутри, но это не работает. Как мне правильно организовать код, чтобы иметь доступ к ответу сервера в других частях программы? Буду благодарен за любые советы!
Есть пара способов решить это. Можно использовать колбэки - передавать функцию-обработчик в отправитьЗапрос и вызывать ее внутри success. Или лучше переписать на промисы:
return $.ajax({…});
И потом использовать .then():
отправитьЗапрос().then(function(ответ) {
// тут работаем с ответом
});
Так код будет чище и понятнее. Еще async/await хорошо подходит, если нужна более синхронная структура.
Проблема знакомая, сам с таким сталкивался. Попробуй использовать промисы или async/await - они отлично решают эту проблему. С промисами код будет выглядеть примерно так:
return $.ajax({…}).then(function(ответ) {
// Тут можно обработать ответ
});
А с async/await еще проще:
const ответ = await $.ajax({…});
// Используем ответ