Прочетете урока ()

↑ Аякс
Урок - jQuery.post()
← Предишен урок

Методът jQuery.post() прави HTTP POST заявка за извличане на данни от сървъра.

Синтаксис на метода jQuery.post().

jQuery.post( url [, данни] [, успех(данни, textStatus, jqXHR)] [, тип данни])

  • url - низ, съдържащ URL адреса на заявката за изпращане на данни.
  • data - низ или обикновен обект (асоциативен масив) от данни, които да бъдат изпратени до сървъра.
  • success(data, textStatus, jqXHR) - функция за обратно извикване, извиквана, ако заявката е успешна.
  • dataType - низ, очакван тип данни от сървъра. По подразбиране jQuery се опитва да открие автоматично (xml, json, скрипт или html).

Примерът по-долу е еквивалентът на jQuery.post() на jQuery.ajax():

Започвайки с jQuery 1.5, jqXHR обект се предава на функцията за успех.

В повечето реализации манипулаторът за успех се дефинира по следния начин:

Този пример изисква HTML код и го вмъква в страницата на посоченото място.

Данните, получени от метода jQuery.post() никога не се кешират, така че кешът и параметрите ifModified на метода jQuery.ajaxSetup() ще бъдат игнорирани.

jqXHR обект.

От jQuery 1.5, всички AJAX методи връщат разширен XMLHttpRequest обект. Този jQuery XHR обект или накратко jqXHR се връща от jQuery.post(), внедряващ Promise интерфейса, предоставяйки му всички свойства, методи и поведение на Promise (вижте Отложен обект за повече информация). jqXHR.done() (вместо успех), jqXHR.fail() (вместо грешка) и jqXHR.always() (вместо пълно) приемат аргумент на функция, който се извиква, когато заявката завърши. ЗаВижте документацията на jQuery.ajax() за информация относно аргументите на тази функция.

Интерфейсът на обещанието също така позволява на AJAX методите на jQuery, включително jQuery.post() , да свързват jqXHR.done(), jqXHR.fail(), jqXHR.always(), т.е. от множество методи за обратно извикване на заявка и дори да присвоите тези функции, след като заявката е завършена. Ако заявката вече е изпълнена, новоприсвоените методи ще бъдат изпълнени незабавно.

Отхвърлени манипулатори.

Методите jqXHR.success(), jqXHR.error(), jqXHR.complete() са отхвърлени от jQuery 1.8. Тези методи ще бъдат премахнати в бъдеще. Вместо това използвайте съответно jqXHR.done(), jqXHR.fail(), jqXHR.always().

Допълнителна забележка.

  • Поради ограниченията за сигурност на браузъра повечето AJAX заявки са ограничени до една и съща политика за сигурност. AJAX заявките не могат успешно да извлекат информация от други домейни, поддомейни или протоколи.
  • Ако възникне грешка по време на заявка за jQuery.get(), тя няма да бъде забелязана, докато не бъде извикан глобалният метод jQuery.ajaxError(). Алтернатива на обработката на грешки от jQuery 1.5 е обектът jqXHR, върнат от jQuery.get().

Пример: Прави се заявка към страницата test.php, но не се извършва обработка на данни.

Пример: Заявка към страницата test.php, изпращане на някои данни (без обработка на получените данни).

Пример: Към сървъра се изпраща масив от данни (без обработка на получените данни).

Пример: подаване на данни от формуляра чрез Ajax заявка.

Пример: Уведомяваме за успешното получаване на данни от страницата test.php (HTML или XML, в зависимост от получените данни).

Пример: Уведомяване за успешно получаване на данни от страницатаtest.cgi с изпращане на допълнителни данни (HTML или XML, в зависимост от получените данни).

Пример: Вземете съдържанието на страницата test.php, върнато във формат JSON ("John","time"=>"2pm"); ?>) и ги покажете на страницата.

Пример: Изпращане на данни от формуляр чрез Ajax заявка и вмъкване на получените данни в div.