JavaScript. Подробное руководство, 6-е издание, стр. 282
<b> request.send(JS0N.stringify(data));</b><b>}</b>18.1.3.3. Запросы с данными в формате XML
Иногда для представления передаваемых данных также используется формат XML. Данные в запросе информации о пиццерии можно было бы передавать не в формате представления данных форм и не в формате JSON представления JavaScript-объектов, а в формате XML-документа. Тело такого запроса могло бы иметь следующий вид:
<b><query></b><b> <find zipcode="02134" radius="1km"> pizza </find></b><b></query></b>Во всех примерах, встречавшихся до сих пор, аргументом метода
<b>send()</b><b>XMLHttpRequest</b><b>Document</b>Пример 18.8. Выполнение запроса HTTP POST с XML-документом в качестве тела
<b>// Параметры поиска "что", "где" и "радиус" оформляются в виде XML-документа // и отправляются по указанному URL-адресу. При получении ответа вызывает // указанную функцию</b><b>function post()uery(url, what, where, radius, callback) {</b><b> var request = new XMLHttpRequest();</b><b> request.open("POST", url); // Методом POST на указанный url</b><b> request.onreadystatechange = function() { // Простой обработчик</b><b> if (request.readyState === 4 && callback) callback(request);</b><b> };</b><b> // Создать XML-документ с корневым элементом <query></b><b> var doc = document.implementation.createDocument("", "query", null);</b><b> var query = doc.documentElement; // Элемент <query></b><b> var find = doc.createElement("find"); // Создать элемент <find></b><b> query.appendChild(find); // И добавить в <query></b><b> find.setAttribute("zipcode", where); // Атрибуты <find></b><b> find.setAttribute("radius”, radius);</b><b> find.appendChild(doc.createTextNode(what)); // И содержимое <find></b><b> // Отправить данные в формате XML серверу.</b><b> // Обратите внимание, что заголовок Content-Type будет установлен автоматически, </b><b> request.send(doc);</b><b>}</b>Обратите внимание, что пример 18.8 не устанавливает заголовок «Content-Type» запроса. Когда методу
<b>send()</b><b>XMLHttpRequest</b><b>send()</b><b>XMLHttpRequest</b>18.1.3.4. Выгрузка файлов
Одна из особенностей HTML-форм заключается в том, что, если пользователь выберет файл с помощью элемента
<b><input type="file"></b><b>XMLHttpRequest</b><b>File</b><b>send().</b>В данном случае нельзя создать объект с помощью конструктора
<b>File():</b><b>File</b><b>File</b><b><input type="file"></b><b>files</b><b>File</b><b>dataTransfer.files</b><b>File</b><b>File</b><b>send().</b>Пример 18.9. Выгрузка файла посредством запроса HTTP POST
<b>// Отыскивает все элементы <input type=”file"> с атрибутом data-uploadto</b><b>// и регистрирует обработчик onchange, который автоматически отправляет </b>