Latest web development tutorials

AJAX - отправив запрос на сервер

Объект XMLHttpRequest для обмена данными с сервером.


Посылает запрос на сервер

Для отправки запроса на сервер, мы используем открыть объект XMLHttpRequest (в) и отправить () метод:

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

способ описание
открытый(метод, URL, асинхронной)

Тип задает запрос, URL и будет ли асинхронная обработка запросов.

  • Метод:тип запроса; GET или POST
  • URL:расположение файла на сервере
  • асинхронной: истина (асинхронный)или ложным (синхронно)
отправить(строка)

Посылает запрос на сервер.

  • строка:только для запросов POST


GET или POST?

По сравнению с POST, GET проще и быстрее, и в большинстве случаев могут быть использованы.

Тем не менее, в следующих случаях, пожалуйста, используйте запрос POST:

  • Невозможно использовать кэш-файлы (файлы или обновить базу данных на сервере)
  • Отправить большие объемы данных (POST не ограничивает объем данных) на сервер
  • При передаче пользовательского ввода содержит неизвестные символы, POST является более стабильной и более надежной, чем GET

GET запрос

простой Запрос GET:

примеров

xmlhttp.open("GET","demo_get.html",true);
xmlhttp.send();

Попробуйте »

В приведенном выше примере, вы можете получить кэшированные результаты.

Чтобы избежать этого, добавьте уникальный идентификатор в URL:

примеров

xmlhttp.open("GET","demo_get.html?t=" + Math.random(),true);
xmlhttp.send();

Попробуйте »

Если вы хотите отправить информацию через метод GET, добавьте информацию URL:

примеров

xmlhttp.open("GET","demo_get2.html?fname=Henry&lname=Ford",true);
xmlhttp.send();

Попробуйте »


запрос POST

простой запрос POST-:

примеров

xmlhttp.open("POST","demo_post.html",true);
xmlhttp.send();

Попробуйте »

Если вам необходимо, чтобы данные как форма POST HTML, используйте setRequestHeader (), чтобы добавить HTTP-заголовки. Затем укажите, что вы хотите отправить данные в Send () метод:

примеров

xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

Попробуйте »

方法 描述
setRequestHeader(header,value)

向请求添加 HTTP 头。

  • header: 规定头的名称
  • value: 规定头的值


URL - файлы на сервере

URLаргумент открыт () метод является адрес файлового сервера:

xmlhttp.open("GET","ajax_test.html",true);

Файл может быть любого типа файла, например .txt и .xml или файлы сценариев сервера, такие как .asp и .php (до возвращения ответа, для выполнения задач на сервере).


Асинхронный - Верно или нет?

AJAX означает асинхронный JavaScript и XML (Asynchronous JavaScript и XML).

Если вы хотите использовать объект AJAX XMLHttpRequest, а затем, параметр асинхронной которого открыт () метод должен быть установлен верно:

xmlhttp.open("GET","ajax_test.html",true);

Для веб-разработчиков, отправить асинхронный запрос является огромным шагом вперед. На сервере для выполнения многих задач являются очень много времени. Перед тем как AJAX происходит, что может привести к применению к зависанию или остановить.

С помощью AJAX, JavaScript, не дожидаясь ответа сервера, но:

  • Другие сценарии выполнения во время ожидания ответа от сервера
  • Когда ответ готов ответить на обработку

Асинхронный = True

При использовании асинхр = True, пожалуйста, положения в ответ на события в onreadystatechange готовности выполнять функцию:

примеров

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

Попробуйте »

Вы узнаете больше о содержании onreadystatechange в следующей главе.


Асинхронный = False

Для того, чтобы использовать асинхр = ложь, установите метод Open () в качестве третьего параметра к ложным:

xmlhttp.open("GET","test1.txt",false);

Мы не рекомендуем использовать асинхр = False, но для некоторых малых запросу, также возможно.

Помните, что JavaScript будет ждать, пока ответ сервера не готов приступить. Если сервер занят или медленно, или прекратить зависании приложения.

Примечание: При использовании асинхр = ложь, пожалуйста , не пишите onreadystatechange функцию - поместить код в Send () обратно к заявлению:

примеров

xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

Попробуйте »