TOC
Need to learn JavaScript? jQuery is a JavaScript framework, so if you don't already know about the JavaScript programming language, we recommend that you learn it now: Learn JavaScript

This article has been localized into Russian by the community.

AJAX:

Методы get() и post()

В jQuery методы get() и post() позволяют с легкостью отправлять HTTP-запросы к странице и получать в ответ результат. Когда вы отправляете форму на сервер, обычно это происходит с помощью GET или POST, а с jQuery вы можете имитировать этот процесс, поскольку есть как метод get(), так и post().

Эти два метода в целом идентичны, поскольку оба они просто вызывают разные типы запроса к серверу. Оба они статические, что означает, что вместо того, чтобы создать экземпляр объекта jQuery и затем работать с ним, мы вызываем методы get() и post() прямо из класса jQuery, либо записав jQuery.get(), либо через сокращенную запись $.get(). В самой простой форме методы get() и post() получают по одному параметру - URL-адрес страницы, которую вы хотите запросить. Однако, в большинстве случаев вам нужно что-то сделать с полученными данными, и на этот случай вы можете передать в качестве параметра callback-функцию, которую jQuery вызовет, если запрос будет выполнен успешно.

Давайте перейдем к тестированию. В предыдущем параграфе, я создал HTML-файл с именем "content.html", который мы загружали с помощью метода load(). При тестировании следующего примера, убедитесь, что у вас есть файл с именем "content.html" в той же директории, из которой вы запускаете пример. Его содержимое не так уж важно, просто напишите в нем что-нибудь. Вот пример использования метода get():

<script type="text/javascript">
$(function()
{
	$.get("content.html", function(data, textStatus)
	{
		alert("Done, with the following status: " + textStatus + ". Here is the response: " + data);
	});
});
</script>

Первый параметр - это URL, это просто "content.html". Второй параметр поинтереснее. Это callback-функция, которую jQuery вызывает, когда запрос к странице успешно завершается. Первый параметр колбэка - это просто содержимое запрошенной страницы, а второй параметр содержит текстовый статус запроса.

Конечно, мы можем запрашивать простую HTML-страницу, как в примере выше, но обычно причиной, чтобы использовать запрос GET или POST - это желание передать какие-то параметры, которые будут обработаны сервером, например, частью кода PHP, ASP или ASP.NET, а затем сервер вернет результат. jQuery может использовать мэппинг параметров GET или POST, что мы и попробуем в следующем примере с методом post():

<script type="text/javascript">
$(function()
{
	$.post("test_post.php",
	{
		name: "John Doe",
		age: "42"
	},
	function(data, textStatus)
	{
		alert("Response from server: " + data);
	});
});
</script>

Этот пример во многом похож на первый, но мы делаем запрос POST к другой странице, в примере это PHP-страница, а в качестве второго параметра мы передаем map-объект - это параметры метода POST. Map состоит из двух параметров - name (имя) и age (возраст). Если бы мы использовали запрос GET вместо POST (POST-запросы не принимают параметры из URL, в отличие от GET), то код выше фактически бы соответствовал обращению к следующему URL в браузере:

test_get.php?name=John Doe&age=42

Этот PHP скрипт может считать параметры, обработать их и вернуть результат. Скрипт на сервере просто берет два значения и создает строку "<name> is <age> years old" и потом возвращает ее, вы можете увидеть эту строку если протестируете пример выше.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!