Přejít k navigační liště

Zdroják » Zprávičky » Detekce AJAXových požadavků na serveru

Detekce AJAXových požadavků na serveru

Zprávičky ‐ ‐ Různé ‐

Pokud používáte na klientské straně nějakou javascriptovou knihovnu, jako je třeba jQuery, můžete snadno odlišit, zda požadavek, který přišel na server, je poslán přímo prohlížečem, nebo skriptem. Mnohé knihovny (kromě jQuery třeba i Mootools, YUI či Prototype) totiž přidávají k požadavkům, posílaným přes XMLHttpRequest, speciální hlavičku:

if ( !remote ) {
 xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
}

Na serveru lze takový požadavek snadno rozpoznat, např. v PHP pomocí podmínky

$_SERVER[ 'HTTP_X_REQUESTED_WITH' ] === 'XMLHttpRequest'

Není tedy třeba přidávat k požadavku nějaké speciální příznaky ( ?ajax=1  apod.)

Zdroj: Detecting Ajax Events on the Server @ Learning jQuery

Komentáře

Odebírat
Upozornit na
guest
12 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů
Kacer Donald

Takze sa to da aj zneuzit ;-)

cooler

zneužít? jak můžeš změnou HTTP hlavičky něco zneužít? To bys asi nebyl dobrej programátor, kdyby ses nechat takhle zneužívat :-)

Strycek Skrblik

Což vystihuje poslední věta předchozí reakce.

Obecně mi ale tento přístup přijde zvláštní – volaný kód by se měl adresovat přímo, nikoli na základě hlaviček…

cooler

Ano, HTTP má i hlavičky :-)

V Zend Frameworku v Controlleru potom staci:

if ($this->_request->isXmlHttpRequ­est()) {
…
 }

DG

Nebo v Nette Framework stačí

if ($this->isAjax()) {
}

:-))

Michal Augustýn

V ASP.NET MVC stačí Request.IsAjax­Request() ;-)

Btw. je to takovej základ, že nechápu, jak bez téhle znalosti mohl doteď někdo žít. Resp. umím si představit ty (IMHO zbytečné) workaroundy.

Znalost této hlavičky je např. dobrá při nastavení cachingu v ASP.NET, stačí dát varyByHeader…

Btw. tuhle hlavičku používá i Microsoft Ajax Library.

Vlastik

V Djangu stačí HttpRequest.is_a­jax() :)

Jakub Vrána

Pokud chceme výsledek odpovědi kešovat, tak je nutné nastavit HTTP hlavičku Vary.

ISO, WIN, nebo MAC? Válka o kódování češtiny na webu

Kdo se webem zabýval na přelomu tisíciletí, zná ten pohled: stránka se načte a místo české věty se na ní objeví změť znaků jako ą, ľ a ». Nebyla to chyba monitoru ani písma. Byl to následek války, která se na českém internetu vedla po dlouhá léta. Šlo v ní o zdánlivou maličkost: jak do jednoho bajtu vměstnat písmeno „ř“. Podívejme se, kdo v ní proti komu stál, proč ji nešlo vyhrát a jak skončila.

Začal jako projekt studentů Matfyzu. Český BIRD dnes pomáhá řídit provoz na největších internetových uzlech

Internet drží pohromadě i díky místům, kde se propojují sítě poskytovatelů připojení, cloudů nebo videoslužeb. S předáváním informací o tom, kudy jsou jednotlivé sítě dostupné, jim ve Frankfurtu, Londýně i Amsterdamu pomáhá český BIRD. Začal jako studentský projekt, po první verzi z roku 2000 léta spíš dřímal a soustavný vývoj obnovil až CZ.NIC. Ve své úloze uspěl tak výrazně, že největší uzly nakonec začaly platit vývoj konkurenčního softwaru, aby nebyly závislé jen na něm.