42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
- XMLHTTP - набор API, позволяющий осуществлять HTTP-запросы к серверу без необходимости перезагружать страницу
|
|
- Данные можно пересылать в виде [XML](../Форматы%20данных/XML.md), [JSON](../Форматы%20данных/JSON.md), [HTML](../Фронтенд/HTML.md) или просто неструктурированным текстом
|
|
- При пересылке используется [HTTP](../Сеть%20и%20API/HTTP.md)
|
|
```JavaScript
|
|
var req;
|
|
function loadXMLDoc(url) {
|
|
req = null;
|
|
if (window.XMLHttpRequest) {
|
|
try {
|
|
req = new XMLHttpRequest();
|
|
} catch (e) {}
|
|
} else if (window.ActiveXObject) { // более старая версия
|
|
try {
|
|
req = new ActiveXObject("Msxml2.XMLHTTP");
|
|
} catch (e) {
|
|
try {
|
|
req = new ActiveXObject("Microsoft.XMLHTTP"); // вообще древняя версия
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
|
|
if (req) {
|
|
req.open("GET", url, true); // true - асинхронно
|
|
req.onreadystatechange = processReqChange; // callback
|
|
req.send(null);
|
|
}
|
|
}
|
|
|
|
function processReqChange() {
|
|
try {
|
|
if (req.readyState === 4) {
|
|
if (req.status === 200) {
|
|
// обработка ответа
|
|
} else {
|
|
// обработка ошибка, доступен req.statusText
|
|
}
|
|
}
|
|
} catch (e) {
|
|
// баги самого XMLHttpRequest
|
|
}
|
|
}
|
|
``` |