Asynchronní požadavky webové stránky vám umožňují sdílet data mezi prohlížečem a serverem, aniž byste museli stránku restartovat. To výrazně zlepšuje uživatelskou zkušenost a umožňuje vám vytvářet dynamičtější a interaktivnější webové aplikace.
JavaScript poskytuje mnoho způsobů, jak provést Ajax dotazy, ale nejběžnější a nejpohodlnější je použití vestavěného objektu XMLHttpRequest. XMLHTTPRequest umožňuje provádět asynchronní HTTP dotazy a přijímat odpovědi v různých formátech, jako je HTML, XML, JSON a další.
Tento článek poskytuje podrobného průvodce vytvářením požadavků na Javascript Ajax a také příklady kódu, které vám pomohou porozumět této výkonné technologii. Dozvíte se, jak odesílat dotazy na server, zpracovávat odpovědi a jak pracovat s různými typy dat a přijímat aktualizace v reálném čase, aniž byste museli stránku restartovat.
Co je požadavek Ajax?
Ajax (angl.) Asynchronous JavaScript and XML je sada technologií, které umožňují výměnu dat mezi serverem a klientem bez restartování celé stránky. Ajax dotazy vám umožňují stahovat a odesílat data na pozadí, aniž byste přerušili provoz uživatelů.
Hlavním principem práce AJAXu je, že klientský skript provede požadavek HTTP na server pomocí JavaScriptu a obdrží odpověď ve formátu XML nebo JSON. Jakmile obdržíte odpověď, klientský skript může aktualizovat obsah stránky, provádět změny nebo provádět jiné kroky, aniž by došlo k restartu celé stránky.
Použití Ajax dotazů zvyšuje výkon webových aplikací, zlepšuje uživatelskou zkušenost a umožňuje vytvářet interaktivní a dynamické webové stránky.
Proč používat Ajax?
Hlavním důvodem použití AJAXu je to, že umožňuje přístup k serveru asynchronně, tedy bez zastavení provozu webové stránky. Například při odesílání formuláře na server se stránka neresetuje úplně, ale pouze aktualizuje požadovanou část. To vám umožní zkrátit dobu čekání a učinit interakci s webem plynulejší a uživatelsky přívětivější.
Dalším důležitým aspektem použití AJAXu je možnost stahovat data asynchronně ze serveru. Namísto stahování všech dat najednou při načítání stránky je možné načíst pouze data, která jsou v tuto chvíli potřebná. To se provádí odesláním požadavků na server pomocí JavaScriptu a aktualizací obsahu stránky pomocí získaných dat. Tento přístup umožňuje snížit množství přenášených dat a zlepšit výkon webu.
Použití Ajaxu vám také umožňuje vytvářet dynamické webové stránky a interaktivní aplikace. Když například změníte hodnotu vstupního pole, můžete odeslat požadavek na server, abyste získali související data a dynamicky aktualizovali obsah stránky. Webová aplikace se tak stává interaktivnější a citlivější, což zvyšuje spokojenost uživatelů a zvyšuje efektivitu webu.
Obecně platí, že použití Ajaxu otevírá mnoho příležitostí ke zlepšení interakce s webovými stránkami a vytváření interaktivních aplikací. Umožňuje aktualizovat obsah stránky bez restartu, stahovat data asynchronně ze serveru a vytvářet dynamické webové stránky. To vše činí webové stránky funkčnějšími a uživatelsky přívětivějšími.
Základy dotazu Ajax
Pomocí AJAXu můžete přistupovat k serveru a přijímat aktualizace dat, aniž byste museli restartovat celou webovou stránku.
Hlavními prvky dotazu Ajax jsou:
- Objekt XMLHttpRequest, který komunikuje se serverem a odesílá dotazy;
- Metody objektu XMLHttpRequest, jako je open () pro konfiguraci dotazu nebo send () pro odeslání dotazu;
- Zpracovatelé událostí, které umožňují sledovat stav dotazu a zpracovávat získaná data.
Chcete-li splnit Ajax požadavek, musíte:
- Vytvořit instanci objektu XMLHttpRequest pomocí konstruktoru new XMLHttpRequest() ;
- Pomocí metod objektu XMLHttpRequest nakonfigurujte a odešlete dotaz;
- Identifikovat zpracovatele událostí pro sledování stavu dotazu a zpracování získaných dat.
Při úspěšném provedení dotazu se data obvykle vracejí ve formátu, který lze zpracovat pomocí JavaScriptu, jako je JSON nebo XML.
Jak vytvořit Ajax požadavek na JavaScript?
Chcete-li vytvořit Ajax požadavek na JavaScript, postupujte podle těchto jednoduchých kroků:
1. Vytvořte objekt XMLHttpRequest:
let xhr = new XMLHttpRequest();
2. Otevřete připojení k serveru:
xhr.open('GET', 'url', true);
Nahraďte ' GET '''POST', pokud je váš požadavek post. Nahraďte ' url ' adresou URL vašeho serveru.
3. Nastavte obslužnou rutinu události na úspěšné provedení požadavku:
xhr.onload = function() >;
4. Odešlete požadavek na server:
xhr.send();
Pokud je váš požadavek post dotazem, můžete data odeslat převodem do metody send(). Chcete-li například odeslat data jako JSON, použijte:
xhr.send(JSON.stringify(data));
5. Zpracujte odpověď serveru:
xhr.onload = function() >;
Výsledná odpověď je obsažena ve vlastnostech responseText nebo responseXML objektu XMLHttpRequest, v závislosti na typu dat, která byla serveru vrácena.
Nyní máte základní průvodce, Jak vytvořit Ajax požadavek na JavaScript. Tuto techniku můžete použít k aktualizaci dat v reálném čase, odesílání formulářů, přijímání dat ze serveru a další.
Jak odeslat Ajax požadavek na server?
Chcete-li odeslat Ajax požadavek na server pomocí JavaScriptu, musíte použít funkci XMLHttpRequest. Zde je jednoduchý příklad:
// Создаем новый объект XMLHttpRequestlet xhr = new XMLHttpRequest();// Устанавливаем метод и URL для запросаxhr.open('GET', 'https://example.com/api/data', true);// Устанавливаем обработчик события загрузкиxhr.onload = function() >;// Отправляем запросxhr.send();
V tomto příkladu vytvoříme nový objekt XMLHttpRequest, nastavíme metodu a adresu URL pro dotaz a poté odešleme dotaz metodou send(). Když server odešle odpověď, zavolá se funkce onload a lze zpracovávat přijatá data.
Je také možné odeslat požadavek na POST s daty. Například:
// Создаем новый объект XMLHttpRequestlet xhr = new XMLHttpRequest();// Устанавливаем метод и URL для запросаxhr.open('POST', 'https://example.com/api/save', true);// Устанавливаем заголовок Content-Typexhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');// Устанавливаем обработчик события загрузкиxhr.onload = function() >;// Отправляем запрос с даннымиxhr.send('name=John&age=30');
V tomto příkladu odešleme post požadavek na adresu URL 'https://example.com/api/save' s daty 'name=John&age=30'. Chcete-li to provést, nastavíme název Content-Type jako 'application/x-www-form-urlencoded' a zavoláme metodu send() s daty.
Pomocí objektu XMLHttpRequest a metod open() a send() je tedy možné snadno odeslat Ajax požadavek na server pomocí JavaScriptu.
Jak obdržíte odpověď ze serveru v žádosti Ajax?
Odpověď ze serveru v Ajax dotazu se provádí pomocí kolbekových funkcí. Všechny události související s dotazem Ajax jsou zpracovávány v rámci těchto funkcí. Existuje několik způsobů, jak získat odpověď ze serveru:
1. Použití vlastnosti onreadystatechange:
Při použití vlastnosti onreadystatechange Poslechněte si změnu vlastností readyState, který určuje aktuální stav dotazu. První kontrola stavu readyState děje se v metodě send(). Pokud je aktuální stav dotazu roven 4 (XMLHttpRequest.DONE), pak je požadavek dokončen a lze získat odpověď ze serveru. Ověřujeme stav odpovědi, která je uložena ve vlastnostech status. Pokud je stav odpovědi 200, pak je dotaz úspěšný a odpověď serveru lze získat pomocí vlastnosti responseText.
2. Použití metody fetch():
Metoda fetch() umožňuje provádět síťové dotazy a vrací Promis, který obsahuje odpověď ze serveru. K získání odpovědi lze použít metodu json() nebo text() uvnitř Kolbek je funkce Promis. Metoda json() převádí přijatá data na JavaScript objekt a metoda text() vrací data jako text.
Vyberte vhodný způsob, jak získat odpověď ze serveru podle vašich potřeb a požadavků projektu.
Příklady dotazů Ajax
1. GET žádost:
K odeslání get žádosti se používá metoda GET. Příklad:
const xhr = new XMLHttpRequest();xhr.open('GET', 'https://api.example.com/data', true);xhr.onreadystatechange = function() >;xhr.send();
2. Post dotaz:
K odeslání dotazu POST se používá metoda POST. Příklad:
const xhr = new XMLHttpRequest();xhr.open('POST', 'https://api.example.com/data', true);xhr.setRequestHeader('Content-Type', 'application/json');xhr.onreadystatechange = function() >;const data = JSON.stringify(< name: 'John', age: 30 >);xhr.send(data);
3. Stažení souboru:
Ke stažení souboru na server se používá metoda POST a objekt FormData. Příklad:
const xhr = new XMLHttpRequest();xhr.open('POST', 'https://api.example.com/upload', true);xhr.onreadystatechange = function() >;const formData = new FormData();formData.append('file', fileInput.files[0]);xhr.send(formData);
4. JSONP dotaz:
JSONP (JSON with Padding) je metoda odesílání dat do jiné domény, obvykle ve formě skriptu. Příklad:
function handleResponse(data) const script = document.createElement('script');script.src = 'https://api.example.com/data?callback=handleResponse';document.body.appendChild(script);
5. Fetch API:
Fetch API poskytuje modernější a flexibilnější způsob provádění Ajax dotazů. Příklad:
fetch('https://api.example.com/data').then(response => response.json()).then(data => console.log(data)).catch(error => console.error(error));
Příklad odesílání dat na server pomocí AJAXu
Chcete-li odesílat data na server pomocí AJAXu, musíte provést několik kroků:
- Vytvořit XMLHttpRequest objekt
- Nastavit metodu dotazu a URL
- Specifikovat asynchronnost dotazu
- Nastavit názvy dotazů
- Zadejte obslužný program události onreadystatechange
- Odeslat požadavek na server
Níže uvedený kód ukazuje příklad odesílání dat na server pomocí AJAXu:
JavaScript:
let xhr = new XMLHttpRequest();let url = 'https://example.com/api/data';let method = 'POST';xhr.open(method, url, true);xhr.setRequestHeader('Content-Type', 'application/json');xhr.setRequestHeader('Authorization', 'Bearer ' + token);xhr.onreadystatechange = function() >;let data = ;xhr.send(JSON.stringify(data));
V tomto příkladu vytvoříme objekt XMLHttpRequest a nastavíme metodu dotazu a URL. Poté zadáme asynchronitu dotazu a nastavíme několik záhlaví, včetně typu obsahu a autorizačního tokenu.
Nakonec vytvoříme objekt s daty, která chceme odeslat na server, a zavoláme metodu send() k odeslání požadavku.
Tento příklad ukazuje základní přístup k odesílání dat na server pomocí AJAXu. V reálném světě však pravděpodobně budete chtít přidat zpracování možných chyb a použít metody zpětného volání k flexibilnějšímu zpracování odpovědi ze serveru.
Příklad získávání dat ze serveru pomocí AJAXu
Chcete-li získat data ze serveru pomocí AJAXu, musíte postupovat podle následujících kroků:
- Vytvořit objekt XMLHttpRequest.
- Nainstalujte obslužnou rutinu události onreadystatechange pro objekt XMLHttpRequest, abyste provedli kroky k získání odpovědi ze serveru.
- Odeslat požadavek na server pomocí metody open a send.
- Zpracujte získaná data a odešlete je na stránku.
K odeslání požadavku na server se používá metoda open, která specifikuje metodu dotazu (GET, POST atd.) a adresu URL serveru. Dotaz je poté odeslán pomocí metody send ().
Před použitím tohoto příkladu je třeba vyměnit "/ api / data" za skutečnou adresu URL vašeho serveru.