Přejít na hlavní obsah

Jak požádat Ajax o JavaScript: průvodce a příklady kódu

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:

  1. Vytvořit instanci objektu XMLHttpRequest pomocí konstruktoru new XMLHttpRequest() ;
  2. Pomocí metod objektu XMLHttpRequest nakonfigurujte a odešlete dotaz;
  3. 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ů:

  1. Vytvořit XMLHttpRequest objekt
  2. Nastavit metodu dotazu a URL
  3. Specifikovat asynchronnost dotazu
  4. Nastavit názvy dotazů
  5. Zadejte obslužný program události onreadystatechange
  6. 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ů:

  1. Vytvořit objekt XMLHttpRequest.
  2. Nainstalujte obslužnou rutinu události onreadystatechange pro objekt XMLHttpRequest, abyste provedli kroky k získání odpovědi ze serveru.
  3. Odeslat požadavek na server pomocí metody open a send.
  4. 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.