русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей
Имейл
Имя и фамилия

jQuery.post( url, [ данные ], [ success(данные, текстСтатус, jqXHR) ], [ типДанных ] )

Возвращает: jqXHR
Описание: Загружает страницу с сервера используя метод POST.

Аргументы

jQuery.post( url, [ данные ], [ success(данные, текстСтатус, jqXHR) ], [ типДанных ] )

Добавлена в версию: 1.0
Изменена в версии: 1.5
Строка, содержащая URL, к которому направлен запрос.
Карта (ключ/значение) или строка, которые отправляется на сервер с запросом.
success(данные, текстСтатус, jqXHR)
Функция, которая исполняется всякий раз после удачного завершения загрузки данных.
Тип данных, ожидаемый с сервера.
Это сокращенная функция Ajax, которая эквивалентна:
$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success
  dataType: dataType
});

Функция обратного вызова success передает возвращенные данные, которые являются корневым элементом XML или строкой текста, в зависимости от типа полученного MIME. Он также передает статус текста полученного ответа.
Начиная с jQuery 1.5, функция обратного вызова success также передает объект "jqXHR"jQuery 1.4, она передавала объект XMLHttpRequest).

Большинство реализаций определит обработчик успешного выполнения:

$.post('ajax/test.html', function(data) {
  $('.result').html(data);
});

Этот пример запрашивает страницу HTML и вставляет ее на странице.

Страницы полученные с помощью POST никогда не кэшируются, поэтому опции cache и ifModified в jQuery.ajaxSetup() не имеют эффекта в этих запросах.

Объект jqXHR

Начиная с jQuery 1.5, все методы jQuery Ajax возвращают расширенный объект XMLHTTPRequest. Это объект jQuery XHR, или "jqXHR", возвращаемый с помощью $.post() реализует интерфейс Promise, придав ему все свойства, методы и поведение Promise (смотрите Отсроченный объект для полной информации). Для удобства и совместимости с функцией обратного вызова имен, используемых в $.ajax(), он обеспечивает методы .error(), .success() и .complete(). Эти методы принимают аргумент функции, которая вызывается когда запрос завершается, и функция получает те же аргументы, соответственно названиям функции обратного вызова $.ajax().

Интерфейс Promise в jQuery 1.5 также позволяет методам jQuery Ajax, включая $.post(), соединять многочисленные функции обратного вызова .success(), .complete() и .error() на единичный запрос, и даже назначает эти функции обратного вызова после того как запрос может быть завершен. Если запрос уже завершен, функция обратного вызова немедлено вызывается.

// Assign handlers immediately after making the request,
    // and remember the jqxhr object for this request
    var jqxhr = $.post("example.php", function() {
      alert("success");
    })
    .success(function() { alert("second success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });

    // perform other work here ...

    // Set another completion function for the request above
    jqxhr.complete(function(){ alert("second complete"); });

Дополнительные примечания:

  • Из-за ограничений безопасности браузера, большинство запросов "Ajax" зависит от Правил ограничения домена; запрос не может успешно извлекать данные из другого домена, поддомена или протокола.
  • Если запрос с jQuery.post() возвращает код ошибки, он молча падает, кроме случая, когда сценарий также вызывает глобальный метод .ajaxError(). Начиная с jQuery 1.5, метод .error() объекта jqXHR, возвращаемого с помощью jQuery.post() также доступен для обработки ошибок.
  • Скрипт и запросы JSONP не распространяются на Правила ограничения домена.

Примеры

Пример 1

Запрашивает страницу test.php не обращая внимания на результат.
$.post("test.php");

Пример 2

Запрашивает страницу test.php, отсылая при этом некоторые дополнительные данные (результат операции все еще игнорируется).
$.post("test.php", { name: "John", time: "2pm" } );

Пример 3

Отсылает массивы данных на сервер (результат операции все еще игнорируется).
$.post("test.php", { 'choices[]': ["Jon", "Susan"] });

Пример 4

Посылает данные формы используя запрос ajax.
$.post("test.php", $("#testform").serialize());

Пример 5

Показывает в сообщении результат запроса страницы test.php (HTML или XML, в зависимости от того, что возвратилось).
$.post("test.php", function(data){
   alert("Data Loaded: " + data);
 });

Пример 6

Показывает в сообщении результат запроса страницы test.php с дополнительными данными (HTML или XML, в зависимости от того, что возвратилось).
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     alert("Data Loaded: " + data);
   });

Пример 7

Получает содержимое test.php, сохраняет в объекте XMLHttpResponse и вызывает функцию process().
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     process(data);
   }, "xml");

Пример 8

Получает содержимое test.php, которое было возвращено в формате json (<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>)
$.post("test.php", { "func": "getNameAndTime" },
   function(data){
     alert(data.name); // John
     console.log(data.time); //  2pm
   }, "json");
Была ли эта информация полезной?
   

Комментарии