@@ -0,0 +1,42 @@
|
||||
- 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
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user