Основы программирования на JavaScript

Краткое руководство по AJAX

Показывать лекцию целиком

Технология AJAX является не новым языком программирования, а просто новым способом использования существующих стандартов.

С помощью AJAX можно создавать Web-приложения, которые будут лучше, быстрее и удобнее для пользователей, чем существующие.

AJAX основывается на JavaScript и запросах HTTP.

AJAX = Асинхронный JavaScript и XML

AJAX является сокращением от "Asynchronous JavaScript And XML" (Асинхронный JavaScript и XML).

AJAX является не новым языком программирования, а просто новым способом создания Web-приложений, которые будут лучше, быстрее, и более интерактивными.

AJAX использует JavaScript для отправки и получения данных при взаимодействии Web-браузера и Web-сервера.

Технология AJAX делает Web-страницы более гибкими и быстро реагирующими, осуществляя обмен данными с Web-сервером в фоновом режиме, а не перезагружая всю Web-страницу всякий раз, когда пользователь делает изменение.

AJAX является технологией браузера

AJAX является технологией, которая выполняется в браузере клиента. Она использует асинхронную передачу данных (запросы HTTP) между браузером и Web-сервером, позволяя Web-страницам запрашивать с сервера небольшие объемы данных вместо целых страниц.

Эта технология позволяет уменьшить объем приложений Интернет, сделать их более быстрыми и более удобными для пользователей.

AJAX является технологией Web-браузера, которая не зависит от программного обеспечения Web-сервера.

AJAX основан на открытых стандартах

AJAX использует следующие открытые стандарты:

JavaScript

XML

HTML

CSS

Используемые в AJAX открытые стандарты строго определены и поддерживаются всеми основными браузерами. Приложения AJAX не зависят от используемых браузеров и платформ.

Технология AJAX улучшает приложения Интернет

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

Однако приложения Интернет не всегда бывают достаточно "богаты" свойствами и удобны для использования по сравнению с традиционными приложениями.

С помощью AJAX приложения Интернет можно сделать богаче (меньше, быстрее, и легче в использовании).

AJAX можно использовать прямо сейчас

Нет ничего нового, что требует изучения.

Технология AJAX основывается на открытых стандартах. Эти стандарты использовались множеством разработчиков многие годы.

Большинство существующих Web-приложений можно легко переписать с помощью технологии AJAX вместо традиционных форм HTML.

AJAX использует XML и запросы HTTP

Традиционное Web-приложение посылает введенные данные на Web-сервер (используя форму HTML). После обработки данных Web-сервер возвращает пользователю совершенно новую Web-страницу.

Так как сервер возвращает новую Web-страницу всякий раз, когда пользователь посылает данные на сервер, то традиционное Web-приложение часто выполняется медленно и оказывается менее удобным для пользователя.

С помощью AJAX Web-приложения могут посылать и получать данные без перезагрузки всей Web-страницы. Это делается с помощью запросов HTTP, посылаемых на сервер (в фоновом режиме), и модификации только отдельных частей Web-страницы с помощью JavaScript, когда сервер возвращает данные.

XML используется обычно в качестве формата для получения данных сервера, хотя можно использовать любой формат, включая обычный текст.

Как это делается, будет показано далее в этом кратком руководстве.

Пример использования AJAX

Технологию AJAX можно использовать для создания приложений с большими интерактивными возможностями.

Пример AJAX

В следующем примере приложения AJAX показано, как Web-страница может оперативно общаться с Web-сервером, когда пользователь вводит данные в Web-форму.

Описание примера

На странице выводится поле ввода с предложением ввести имя. Когда пользователь начинает вводить в этом поле имя, ниже появляются возможные варианты имен.

Форма HTML

Пусть на Web-странице имеется форма HTML со следующим кодом:

<form> 
Имя:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form>
<p>Советуем: <span id="txtHint"></span></p>

Как можно видеть, это простая форма HTML с полем ввода с именем "txt1".

Атрибут события этого поля ввода определяет функцию, которая будет запускаться при возникновении события onkeyup.

Параграф ниже формы содержит тег span с именем "txtHint". Тег span используется в качестве поля для подстановки данных, получаемых с Web-сервера.

Когда пользователь вводит данные, выполняется функция с именем "showHint()". Выполнение функции запускается событием "onkeyup". Другими словами, всякий раз, когда пользователь убирает свой палец с клавиатуры внутри поля ввода (отпускает нажатую клавишу), вызывается функция showHint.

Функция showHint()

Функция showHint() является очень простой функцией JavaScript, помещенной в раздел заголовка <head> страницы HTML.

Функция имеет следующий код:

function showHint(str)
{
if (str.length==0)
{ 
document.getElementById("txtHint").innerHTML=""
return
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Браузер не поддерживает запросы HTTP")
return
} 
var url="gethint.asp"
url=url+"?q="+str
url=url+"sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

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

Если имеется какой-то ввод в текстовое поле ( str.length > 0 ), то функция выполняет следующее:

  • Определяет url (имя файла) для отправки на сервер
  • Добавляет к url параметр ( q ) с содержимым поля ввода
  • Добавляет случайное число, чтобы сервер не использовал кэшированный файл
  • Создает объект XMLHTTP, и приказывает объекту выполнить функцию с именем stateChanged, когда произойдет изменение.
  • Открывает объект XMLHTTP с заданным url.
  • Посылает запрос HTTP на сервер
  • Если поле ввода будет пустым, то функция просто очищает содержимое поля для подстановки txtHint.

    Функция stateChanged()

    Функция stateChanged() содержит следующий код:

    function stateChanged() 
    { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
    document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
    } 
    }

    Функция stateChanged() выполняется всякий раз, когда изменяется состояние объекта XMLHTTP.

    Когда состояние будет равно 4 (или "complete"), поле для подстановки txtHint получает содержимое текста пришедшего ответа.

    Браузеры AJAX

    Приложения AJAX могут выполняться только в Web-браузерах с поддержкой XML.

    Поддержка AJAX браузерами

    Приложения AJAX могут выполняться только в Web-браузерах с полной поддержкой XML, т.е. всеми основными современными браузерами.

    Предыдущий пример вызывает функцию с именем GetXmlHttpObject.

    Эта функция предназначена для решения проблемы создания различных объектов XMLHTTP для различных браузеров.

    Функция имеет следующий код:

    function GetXmlHttpObject(handler)
    { 
    var objXMLHttp=null
    if (window.XMLHttpRequest)
    {
    objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)
    {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp
    }

    Исходный код приложения AJAX

    Далее показан полный исходный код рассмотренного выше примера AJAX.

    Страница HTML для примера AJAX

    Эта страница HTML содержит простую форму HTML и ссылку на файл JavaScript.

    <html>
    <head>
    <script src="clienthint.js"></script> 
    </head>
    <body>
    <form> 
    Имя:
    <input type="text" id="txt1"
    onkeyup="showHint(this.value)">
    </form>
    <p>Советуем: <span id="txtHint"></span></p> 
    </body>
    </html>

    Код JavaScript приложения AJAX

    Это код JavaScript, который находится в файле "clienthint.js":

    var xmlHttp
    
    function showHint(str)
    {
    if (str.length==0)
    { 
    document.getElementById("txtHint").innerHTML=""
    return
    }
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
    alert ("Браузер не поддерживает запросы HTTP")
    return
    } 
    var url="gethint.asp"
    url=url+"?q="+str
    url=url+"sid="+Math.random()
    xmlHttp.onreadystatechange=stateChanged 
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
    } 
    
    function stateChanged() 
    { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
    document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
    } 
    } 
    
    function GetXmlHttpObject()
    { 
    var objXMLHttp=null
    if (window.XMLHttpRequest)
    {
    objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)
    {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp
    }

    Далее речь пойдет о серверной странице AJAX.

    Серверные страницы AJAX для ASP и PHP

    Сервера AJAX не существует.

    Страницы AJAX может обрабатывать любой сервер Интернет.

    Серверная страница AJAX - ASP и PHP

    Серверная страница, вызываемая сценарием JavaScript в рассматриваемом примере, является простым файлом ASP с именем "gethint.asp".

    Ниже представлены два примера кода серверной страницы, один, написанный на ASP, а другой – на PHP.

    Пример AJAX на ASP

    Код на странице "gethint.asp" написан на VBScript для Информационного сервера Интернет (IIS). Он просто проверяет массив имен и возвращает клиенту подходящие имена:

    <%
    dim a(30)
    'Заполнение массива именами 
    a(1)="Anna"
    a(2)="Brittany"
    a(3)="Cinderella"
    a(4)="Diana"
    a(5)="Eva"
    a(6)="Fiona"
    a(7)="Gunda"
    a(8)="Hege"
    a(9)="Inga"
    a(10)="Johanna"
    a(11)="Kitty"
    a(12)="Linda"
    a(13)="Nina"
    a(14)="Ophelia"
    a(15)="Petunia"
    a(16)="Amanda"
    a(17)="Raquel"
    a(18)="Cindy"
    a(19)="Doris"
    a(20)="Eve"
    a(21)="Evita"
    a(22)="Sunniva"
    a(23)="Tove"
    a(24)="Unni"
    a(25)="Violet"
    a(26)="Liza"
    a(27)="Elizabeth"
    a(28)="Ellen"
    a(29)="Wenche"
    a(30)="Vicky"
    'извлечение параметра q из URL
    q=ucase(request.querystring("q"))
    'поиск всех рекомендаций из массива, если длина q>0
    if len(q)>0 then
      hint=""
      for i=1 to 30
        if q=ucase(mid(a(i),1,len(q))) then
          if hint="" then
            hint=a(i)
          else
            hint=hint  " , "  a(i)
          end if
        end if
      next
    end if
    'Вывод "нет предложений" если рекомендуемого имени не найдено 
    'или вывод подходящих значений 
    if hint="" then 
      response.write("нет предложений")
    else
      response.write(hint)
    end if
    %>

    Пример AJAX на PHP

    Приведенный выше код переписан на PHP.

    Примечание: Чтобы выполнить весь пример на PHP, не забудьте изменить значение переменной url в "clienthint.js" с "gethint.asp" на "gethint.php".

    Пример PHP

    <?php
    // Заполняем массив именами 
    $a[]="Anna";
    $a[]="Brittany";
    $a[]="Cinderella";
    $a[]="Diana";
    $a[]="Eva";
    $a[]="Fiona";
    $a[]="Gunda";
    $a[]="Hege";
    $a[]="Inga";
    $a[]="Johanna";
    $a[]="Kitty";
    $a[]="Linda";
    $a[]="Nina";
    $a[]="Ophelia";
    $a[]="Petunia";
    $a[]="Amanda";
    $a[]="Raquel";
    $a[]="Cindy";
    $a[]="Doris";
    $a[]="Eve";
    $a[]="Evita";
    $a[]="Sunniva";
    $a[]="Tove";
    $a[]="Unni";
    $a[]="Violet";
    $a[]="Liza";
    $a[]="Elizabeth";
    $a[]="Ellen";
    $a[]="Wenche";
    $a[]="Vicky";
    //извлечение параметра q из URL
    $q=$_GET["q"];
    //поиск всех рекомендаций в массиве, если длина q>0
    if (strlen($q) > 0)
    {
      $hint="";
      for($i=0; $i<count($a); $i++)
      {
      if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
        {
        if ($hint=="")
          {
          $hint=$a[$i];
          }
        else
          {
          $hint=$hint." , ".$a[$i];
          }
        }
      }
    }
    
    // Вывод "нет предложений", если рекомендаций не найдено 
    // или вывод подходящих значений 
    if ($hint == "")
    {
    $response="нет предложений";
    }
    else
    {
    $response=$hint;
    }
    
    //вывод ответа 
    echo $response;
    ?>

    Пример AJAX c базой данных

    AJAX можно использовать для интерактивного взаимодействия с базой данных.

    Пример AJAX с базой данных

    В следующем примере приложения AJAX будет показано, как Web-страница может извлекать информацию из базы данных с помощью технологии AJAX.

    Описание примера:

    На Web-странице выводится список выбора с именами клиентов.

    При выборе любого клиента на странице выводится связанная с ним информация из базы данных

    Разбор примера AJAX с базой данных

    Описанный выше пример страницы содержит простую форму HTML и ссылку на сценарий JavaScript:

    <html>
    <head>
    <script src="selectcustomer.js"></script>
    </head>
    <body>
    <form> 
    Выберите заказчика:
    <select name="customers" onchange="showCustomer(this.value)">
    <option value="ALFKI">Alfreds Futterkiste
    <option value="NORTS ">North/South
    <option value="WOLZA">Wolski Zajazd 
    </select>
    </form>
    <p>
    <div id="txtHint"><b>Информация о заказчике будет выводиться здесь.</b></div>
    </p>
    </body>
    </html>

    Как можно видеть, это просто форма HTML с раскрывающимся списком с названием "customers".

    Параграф ниже формы содержит тег div с именем "txtHint". Тег div используется в качестве поля для заполнения получаемой с Web-сервера информацией.

    Когда пользователь выбирает данные (имя заказчика), выполняется функция "showCustomer()". Выполнение функции запускается событием "onchange". Другими словами, каждый раз, когда пользователь изменяет значение в поле раскрывающегося списка, вызывается функция showCustomer.

    Код JavaScript показан далее.

    Код JavaScript приложения AJAX

    Следующий далее код JavaScript находится в файле "selectcustomer.js":

    var xmlHttp
    
    function showCustomer(str)
    { 
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
    alert ("Браузер не поддерживает запросы HTTP")
    return
    } 
    var url="getcustomer.asp"
    url=url+"?q="+str
    url=url+"sid="+Math.random()
    xmlHttp.onreadystatechange=stateChanged 
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
    }
    
    function stateChanged() 
    { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
    document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
    } 
    } 
    
    function GetXmlHttpObject()
    { 
    var objXMLHttp=null
    if (window.XMLHttpRequest)
    {
    objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)
    {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp
    }

    Серверная страница приложения AJAX

    Серверная страница, вызываемая сценарием JavaScript, является просто файлом ASP file с именем "getcustomer.asp".

    Страница написана на VBScript для Информационного сервера Интернет (IIS). Ее можно легко переписать на PHP, или любой другой серверный язык.

    Код выполняет команды SQL на базе данных и возвращает результат в виде таблицы HTML:

    sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
    sql=sql  request.querystring("q")
    
    set conn=Server.CreateObject("ADODB.Connection")
    conn.Provider="Microsoft.Jet.OLEDB.4.0"
    conn.Open(Server.Mappath("/db/northwind.mdb"))
    set rs = Server.CreateObject("ADODB.recordset")
    rs.Open sql, conn
    
    response.write("<table>")
    do until rs.EOF
    for each x in rs.Fields
    response.write("<tr><td><b>"  x.name  "</b></td>")
    response.write("<td>"  x.value  "</td></tr>")
    next
    rs.MoveNext
    loop
    
    response.write("</table>")

    Пример использования AJAX c XML

    AJAX можно использовать для интерактивного взаимодействия с файлом XML.

    Пример использования AJAX c XML

    В следующем далее примере приложения AJAX показано, как Web-страница может извлекать информацию из файла XML с помощью технологии AJAX.

    Описание примера

    На Web-странице выводится список выбора с именами исполнителей музыкальных произведений. При выборе исполнителя на странице появляется информация с описанием компакт-диска с записями этого музыканта.

    Разбор примера AJAX с использованием XML

    Рассматриваемый пример содержит простую форму HTML и ссылку на код JavaScript:

    <html>
    <head>
    <script src="selectcd.js"></script>
    </head>
    <body>
    <form>
    Выберите компакт-диск:
    <select name="cds" onchange="showCD(this.value)">
    <option value="Bob Dylan">Bob Dylan</option>
    <option value="Bonnie Tyler">Bonnie Tyler</option>
    <option value="Dolly Parton">Dolly Parton</option> 
    </select>
    </form>
    <p>
    <div id="txtHint"><b>Здесь выводится информация о компакт-диске.</b></div>
    </p>
    </body>
    </html>

    Как можно видеть, это простая форма HTML с простым раскрывающимся списком выбора с именем "cds".

    Параграф ниже формы содержит тег div с именем "txtHint". Тег div используется в качестве поля для заполнения информацией, получаемой с Web-сервера.

    Когда пользователь делает свой выбор, выполняется функция с именем "showCD". Выполнение функции запускается событием "onchange". Другими словами, каждый раз, когда пользователь изменяет значение в поле раскрывающегося списка, вызывается функция showCD.

    Код JavaScript показан далее.

    Код JavaScript приложения AJAX

    Следующий далее код JavaScript находится в файле "selectcd.js":

    var xmlHttp
    
    function showCD(str)
    { 
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
    {
    alert ("Браузер не поддерживает запросы HTTP")
    return
    } 
    var url="getcd.asp"
    url=url+"?q="+str
    url=url+"sid="+Math.random()
    xmlHttp.onreadystatechange=stateChanged 
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
    }
    
    function stateChanged() 
    { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
    document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
    } 
    } 
    
    function GetXmlHttpObject()
    { 
    var objXMLHttp=null
    if (window.XMLHttpRequest)
    {
    objXMLHttp=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)
    {
    objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp
    }

    Серверная страница приложения AJAX

    Серверная страница, вызываемая кодом JavaScript, будет простым файлом ASP с именем "getcd.asp".

    Страница написана на VBScript для Информационного сервера Интернет (IIS). Ее можно легко переписать на PHP, или любом другом серверном языке.

    Код выполняет запрос на файле XML и возвращает результат в виде HTML.

    q=request.querystring("q")
    
    set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.load(Server.MapPath("cd_catalog.xml"))
    
    set nodes=xmlDoc.selectNodes("CATALOG/CD[ARTIST='"  q  "']")
    
    for each x in nodes
    for each y in x.childnodes
    response.write("<b>"  y.nodename  ":</b> ")
    response.write(y.text)
    response.write("<br />")
    next
    next

    Объект AJAX XMLHttpRequest

    Объект XMLHttpRequest делает возможной технологию AJAX.

    Объект XMLHttpRequest

    Чтобы создавать Web-приложения AJAX, необходимо хорошо знать объект JavaScript, называемый XMLHttpRequest.

    Объект XMLHttpRequest является ключевым понятием технологии AJAX. Он был доступен с момента появления в июле 2000 браузера Internet Explorer 5.5, но не был полностью понят до 2005 года, когда начались разговоры об AJAX и Web 2.0.

    Ниже представлены некоторые методы и свойства этого объекта, с которыми необходимо быть знакомым.

    Создание объекта XMLHttpRequest

    Различные браузеры используют для создания объекта XMLHttpRequest различные методы.

    Internet Explorer использует ActiveXObject.

    Другие браузеры используют встроенный в JavaScript объект, называемый XMLHttpRequest.

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

    var XMLHttp=null
    
    if (window.XMLHttpRequest)
      {
      XMLHttp=new XMLHttpRequest()
      }
    else if (window.ActiveXObject)
      {
      XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
      }

    Разбор приведенного примера

    Сначала создается переменная XMLHttp для использования в качестве объекта XMLHttpRequest. Ее значение задается как null.

    Затем проверяется, доступен ли объект window.XMLHttpRequest. Этот объект доступен в более новых версиях браузеров, таких как Firefox, Mozilla, и Opera.

    Если объект доступен, то он используется для создания нового объекта.

    XMLHttp=new XMLHttpRequest().

    Если он не доступен, то проверяется, доступен ли объект window.ActiveXObject. Этот объект будет доступен в браузере Internet Explorer версии 5.5 и выше.

    Если этот объект доступен, то он используется для создания нового объекта:

    XMLHttp=new ActiveXObject().

    Еще пример?

    Некоторые программисты предпочтут использовать самую новую и быструю версию объекта XMLHttpRequest.

    Следующий пример пытается использовать самую последнюю версию объекта "Msxml2.XMLHTTP" компании Microsoft, доступную в Internet Explorer 6, прежде чем обратиться к объекту "Microsoft.XMLHTTP", доступному в Internet Explorer 5.5 и выше.

    var XMLHttp=null
    try
    {
    XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch(e)
     {
     try
     {
     XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
     }
    }
    
    if (XMLHttp==null)
    {
    XMLHttp=new XMLHttpRequest()
    }

    Разбор приведенного примера

    Сначала создается переменная XMLHttp для использования в качестве объекта XMLHttpRequest. Ее значение задается как null.

    Затем делается попытка создания объекта способом компании Microsoft, доступным в Internet Explorer 6 и более поздних версиях:

    XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")

    Если это порождает ошибку, то используется старый способ (Internet Explorer 5.5):

    XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

    Если XMLHttp по прежнему имеет значение null, то делается попытка создания объекта "стандартным" способом:

    XMLHttp=new XMLHttpRequest()

    Методы объекта XMLHttpRequest

    Метод open()

    Метод open() создает запрос для Web-сервера.

    Метод send()

    Метод send() посылает запрос серверу.

    Метод abort()

    Метод abort() отменяет текущий запрос к серверу.

    Свойство readyState объекта XMLHttpRequest

    Свойство readyState определяет текущее состояние объекта XMLHttpRequest.

    В таблице показаны возможные значения свойства readyState:

    Состояние Описание
    0 Запрос не инициализирован
    1 Запрос создан
    2 Запрос послан
    3 Запрос обрабатывается
    4 Запрос завершен

    readyState=0 после создания объекта XMLHttpRequest, но до вызова метода open().

    readyState=1 после вызова метода open(), но до вызова метода send().

    readyState=2 после вызова метода send().

    readyState=3 после того, как браузер соединится с сервером, но до завершения сервером ответа.

    readyState=4 после завершения запроса и полного получения всех данных ответа с сервера.

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

    Для приложений AJAX представляет интерес фактически только состояние 4. То есть, когда запрос завершен, и можно использовать полученные данные.

    Свойство responseText объекта XMLHttpRequest

    Свойство responseText содержит присланный сервером текст.

    Вернуться к учебному плану