Метод ajax()

Следующий метод, с которым я вас познакомлю будет $.ajax() – собственно, он тут главный, и все остальные AJAX-методы являются лишь обёрткой (и load() в том же числе). Метод $.ajax() принимает в качестве параметра пачку настроек и URL.

Приведу пример, аналогичный вызову load():

$.ajax({
    url: "/get-my-page.html", // указываем URL
    method: "GET",            // HTTP метод, по умолчанию GET
    data: { "id": 42 },       // данные, которые отправляем на сервер
    dataType: "html",         // тип данных загружаемых с сервера
    success: function (data) {
        // вешаем свой обработчик события success
        $("#content").html(data);
    }
});

Тут мы обрабатывали HTML-ответ от сервера – это хорошо когда нам полстраницы обновить надо, но данные лучше передавать в «правильном» формате. XML – это понятно, структурировано, но избыточно и как-то не совсем JavaScript-way, и поэтому наш выбор – это JSON:

Фактически, это и есть JavaScript-код как есть (JavaScript Object Notation, если быть придирчиво точным). При этом формат уже распространён настолько, что работа с данными в другом формате уже не приветствуется.

Жизнь не стоит на месте, есть и более удобные форматы, но не в JavaScript :) Мы же довольствуемся малым — текст, HTML, JSON или XML.

Для загрузки JSON существует быстрая функция-синоним — $.getJSON() — в качестве обязательного параметра лишь ссылка, куда стучимся, опционально можно указать данные для передачи на сервер и функцию обратного вызова.

Нельзя просто так взять и описать все возможные параметры для вызова $.ajax(), таки стоит держать под рукой официальный мануал https://api.jquery.com/jQuery.ajax/.

Ещё есть пара-тройка методов, которые стоит упомянуть:

загружает данные методом GET

загружает данные методом POST

загружает JavaScript с сервера методом GET

Все они, как я уже говорил ранее, лишь обёртки над вызовом $.ajax(), в чём несложно убедиться, заглянув в исходный код библиотеки. И там вы найдёте реализацию методов $.get() и $.post() :)

Метод getScript() в свою очередь это лишь обёртка над $.get():

Last updated