Произошла ошибка.
Пожалуйста, обновите страницу.
Fly.js > Документация > Общие > $.ajax()

$.ajax()

Отправляет ajax запрос с заданными параметрами на сервер.

#Общие #Глобальные

$.ajax(presets)
$.ajax(preset1, [preset2], [presetN])

                    FlyDomNode: {
                        __constructor: function(context) {
                            var array = fnNodeList.makeDomNodeArray(context);
                            for (var a = 0, al = array.length; a < al; a++) {
                                this[a] = array[a];
                            }
                            this.length = al;
                        },

                        size: function() {
                            return this.length;
                        },

                        get: function(index) {
                            return $.isNumber(index) ? this[index] : [].slice.call(this);
                        },

                        addNode: function(flyNode) {
                            return fnNodeList.changeNodeContext(this, flyNode, function(child, context) {
                                context.indexOf(child) === -1 && context.push(child);
                            });
                        },

                        removeNode: function(flyNode) {
                            return fnNodeList.changeNodeContext(this, flyNode, function(child, context) {
                                var position = context.indexOf(child);
                                if (position !== -1) context.splice(position, 1);
                            });
                        },

                        eq: function(index) {
                            if (index < 0) index = index + this.length;
                            return new this.__self(this[index]);
                        },

                        lt: function(index) {
                            return new this.__self(this.slice(0, index));
                        },

                        gt: function(index) {
                            return new this.__self(this.slice(index));
                        },

                        last: function(selector) {
                            var element = this[this.length - 1];
                            return new this.__self(fnStyle.isMatch(element, selector) ? element : []);
                        },

                        first: function(selector) {
                            var element = this[0];
                            return new this.__self(fnStyle.isMatch(element, selector) ? element : []);
                        },

                        normalize: function() {
                            return fnNodeList.transformNodeContext(this, function(item, context) {
                                if ($.isNode(item)) context.push(item);
                            });
                        },

                        each: function(callback, context) {
                            $.each(this, callback, context);
                            return this;
                        },

                        name: function() {
                            return this[0].tagName.toLowerCase() || null;
                        }
                    }
                

$.ajax(presets)
Возвращает: Fly $

Отправляет ajax запрос с заданными через массив параметрами на сервер.

presets: Array []

Массив с пресетами настроек для запроса.

Каждый элемент массива должен являться объектом с опциями или названием пресета (то есть строкой). Каждый следующий элемент будет перезаписывать значения предыдущих (с помощью функции $.extend()).

$.ajax(preset1, [preset2], [presetN])
Возвращает: Fly $

Отправляет ajax запрос с заданными через аргументы параметрами на сервер.

preset1: Object {} or String ABC

Пресет настроек для запроса.

preset2: Object {} or String ABC

Пресет настроек для запроса.

presetN: Object {} or String ABC

Пресет настроек для запроса.

Каждый аргумент должен являться объектом с опциями или названием пресета (то есть строкой). Каждый следующий аргумент будет перезаписывать значения предыдущих (с помощью функции $.extend()).

Описание объекта пресета для метода $.ajax().

async (default: true): Boolean !!

Флаг, отвечающий за асинхронную передачу данных. К сожалению Firefox не поддерживает синхронные ajax запросы.

before: Function ()

Функция, которая будет вызвана перед запросом с единственным параметром xhr.

cache (default: false): Boolean !! or String ABC

Значение заголовка Cache-Control. При этом true преобразуется в public, а false в no-cache.

complete: Function ()

Функция, которая будет выполнена в случае удачи или ошибки с параметрами error, xhr и status. Если запрос прошёл успешно, то error будет равен null. Последний параметр status можно получить через свойство xhr.status.

context: Any *

Контекст выполнения функций before, complete, error, progress, status, success, upload, xhr.

data: Object {} or FlyNode [$] or Node <> or Any *

Параметр data содержит данные для кодирования и отправки на сервер. Как правило data является объектом, но также может быть узлом или FlyNode с формой. В этом случае автоматически будет извлечён объект FormData и отправлен на сервер, но только с использованием метода POST.

Кроме того, если кодирование данных отключено (при помощи свойства encoding), то data отправится на сервер без каких-либо преобразований.

encoding (default application/x-www-form-urlencoded): Boolean !! or String ABC

Устанавливает способ кодирования данных. Может принимать значения application/x-www-form-urlencoded, multipart/form-data. Любые другие значения будут трактоваться как отсутствие кодирования данных. Если parser выставлен в значение jsonp, то encoding будет принудительно изменён на значение по умолчанию.

error: Function ()

Функция, которая будет вызвана в результате любой ошибки с параметрами xhr, error. Параметр error может принимать значения abort, error, parseerror и timeout.

global (default: true): Boolean !!

Флаг, вызывающий вместе с локальными функциями запроса ещё и глобальные, определённые в пресете global. Следует помнить, что глобальные функции для метода $.ajax() вызываются в контексте пресета global, а не в переданном context.

headers: Object {}

Объект, в котором ключи являются названиями, а свойства - значениями дополнительных заголовков, которые будут установлены и отправлены на сервер.

method (default GET): String ABC

Метод запроса, может принимать любое строковое значение. Самые распространённые значения GET и POST.

mime: String ABC

Строка, переопределяющая MIME тип ответа на произвольный.

parser (default text): String ABC

Название парсера, который будет использован для обработки пришедших данных. Может принимать значения json, jsonp, script, text и xml.

В случае с json сервер должен вернуть валидный JSON, иначе будет вызвана ошибка с параметром error равным parseerror.

В случае с jsonp, в данные запроса будет добавлен параметр callback, и сервер будет должен вернуть строку callback(arg1, arg2, argN), где callback - полученный параметр, arg1, arg2, argN - аргументы, которые будут записаны в массив xhr.response (он же result для функции success).

Если выбран парсер xml, то сервер должен позаботиться о выставлении заголовка Content-Type в значение text/xml.

password: String ABC

Пароль, необходимый для авторизации во время ajax запроса.

progress: Function ()

Функция, вызываемая при получении порции данных с сервера с параметрами event, xhr. Из переданного события event можно получить различную дополнительную информацию.

status: Object {}

Объект, свойствами которого являются функции, а ключами - цифровые HTTP статусы. Если статус ответа сервера совпадает с именем свойства, то вызывается соответствующая функция.

success: Function ()

Функция, которая будет вызвана при успешном выполнении запроса с параметрами result, status, xhr. Причём параметр result зависит от выбранного парсера parser.

timeout (default 10000): Number 123

Количество миллисекунд, через которое запрос будет считаться потерянным (будет вызвана функция error).

upload: Function ()

Функция, вызываемая при отправке порции данных на сервер с параметрами event, xhr. Из переданного события event можно получить различную дополнительную информацию.

url: String ABC

Адрес, на которой следует отправить ajax запрос.

user: String ABC

Имя пользователя, необходимое для авторизации во время ajax запроса.

xhr: Function ()

Функция-конструктор объекта с интерфейсом XMLHttpRequest для ajax запроса. Не принимает никаких параметров. Может быть переопределена для каких-либо специфических задач. По-умолчанию возвращает new XMLHttpRequest().

Переданные в опциях функции выполняются в следующем порядке: xhr, before, success, status, error, complete.

Также доступна возможность определения глобального пресета global с помощью функции $.set(). Если такой пресет определён, он будет подмешиваться к каждому ajax запросу. При этом все функции global не будут переопределены, а будут выполняться вместе с функциями из других пресетов.

Пример: Отправка POST запроса на сервер.

<!DOCTYPE html>
    <head>
        <meta charset="utf-8"/>
        <title>Fly.js - $.ajax()</title>

        <script src="/scripts/fly.js"></script>
    </head>
    <body>
        <button>Send ajax!</button>
        <p></p>

        <script>
            $.set('ajax', 'post', {method: 'post', url: '/ajax', data: {ajax: 1}});

            $('button').on('click', function() {
                $.ajax('post', {
                    data: {action: 'time'},
                    success: function(result, status, xhr) {
                        $('p').html('Current time: ' + result);
                    },
                    error: function(xhr, error) {
                        $('p').html('Server error!');
                    }
                });
            });
        </script>
    </body>
</html>

Пример: Ответ сервера в формате JSON.

<!DOCTYPE html>
    <head>
        <meta charset="utf-8"/>
        <title>Fly.js - $.ajax()</title>

        <script src="/scripts/fly.js"></script>
    </head>
    <body>
        <form>
            What is your name?
            <input type="hidden" name="ajax" value="1"/>
            <input type="hidden" name="action" value="welcome"/>
            <input name="name" maxlength="32" value="John Resig"/>
        </form>
        <button>Send form!</button>
        <p></p>

        <script>
            $.set('ajax', 'global', {
                url: '/ajax',
                status: {
                    200: function(result) {
                        result.welcome && $('p').append('It works!');
                    }
                }
            });

            $('button').on('click', function() {
                $.ajax({
                    data: $('form'),
                    parser: 'json',
                    success: function(result, xhr, status) {
                        $('p').html(result.welcome);
                    }
                });
            });
        </script>
    </body>
</html>