Кафедра
«Автоматика и Системотехника»
Лабораторная работа №9
по курсу «Архитектура информационных систем»
Тема: AJAX-запрос с передачей текстовых данных
формы с XMLHttpRequest2 и HTML5
Проверил:
Конопелько Г.К.
г. Хабаровск
2020 г.
Лабораторная работа №9
«AJAX-запрос с передачей текстовых данных
формы с XMLHttpRequest2 и HTML5
Цель работы: ознакомление с основными компонентами Ajax, организация
запроса и обработка ответа на HTML странице.
Задание:
1. Сделать форму с полями ввода и кнопкой “submit” в центральной части
страницы. Имена html-файлов и файлов Perl-скриптов должны содержать
русские буквы.
2. Разработать сценарии для организации асинхронного AJAX-запроса.
3. Сценарии должны предусматривать вывод сообщений об ошибках
приема-передачи и о состоянии запроса.
4. Для передачи данных формы использовать методы и свойства объекта
XMLHttpRequest2.
5. Предусмотреть контроль корректности заполнения элементов формы.
6. HTML-файлы и Perl-скрипты должны формировать ответ браузеру в виде
текста, включающего русские буквы. Ответ должен отображаться в
центральной части HTML-страницы.
Внимание! Использовать библиотечные функции при выполнении работы
запрещается!
Ход работы:
файл index.html /home/var/www/html/is1-02/Labs/index.html
<label for="Name">Имя:</label>
<input type="text" name="Name" id="Name"><br>
<label for="Name3">Отчество:</label>
<input type="text" name="Name3" id="Name3"><br>
function createRequest()
{
if (typeof XMLHttpRequest != "undefined")
{
return new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
var aVersions = [
"MSXML2.XMLHttp.5.0",
"MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp",
"Microsoft.XMLHttp"];
for (var i = 0; i < aVersions.length; i++)
{
try
{
var oXmlHttp = new ActiveXObject(aVersions[i]);
return oXmlHttp;
} catch (Error) {}
throw new Error("Ошибка XMLHttp.");
} }}
function print_9(resp1)
{document.getElementById('serverResponse_9').innerHTML = resp1;
}
Request.onreadystatechange = function()
{
if (Request.readyState == 4)
{
if (Request.status != 200)
{
alert(Request.status + ': ' + Request.statusText);
}
else
{
r_handler(Request.responseText);
} } return; }
if (r_method.toLowerCase() == "post")
{
if (r_picture.toLowerCase() == "true")
{Request.setRequestHeader("Content-Type","multipart/form-data;
boundary=" + boundary);
}
else
{ Request.setRequestHeader("Content-Type","application/x-www-
form-urlencoded; charset=utf-8");
}
Request.send(r_args);
}
else { Request.send(null); }}
function sendPost_9()
{ var r_args = "&Familiy=" +
encodeURIComponent(document.getElementById("form3").Familiy.value) +
"&Name=" +
encodeURIComponent(document.getElementById("form3").Name.value) +
"&Name3=" +
encodeURIComponent(document.getElementById("form3").Name3.value) + Лист
Лабораторная работа №9
ТОГУ, ИС(аб)-71, Белим Л.В.
по курсу АИС 2
"&Year1=" +
encodeURIComponent(document.getElementById("form3").Year1.value) +
"&Year2=" +
encodeURIComponent(document.getElementById("form3").Year2.value) +
"&Number1=" +
encodeURIComponent(document.getElementById("form3").Number1.value);
Лист
Лабораторная работа №9
ТОГУ, ИС(аб)-71, Белим Л.В.
по курсу АИС 2