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ší Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
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.

Přístupnost není jen o splnění norem: nový pohled na inkluzivní design

Přístupnost a inkluze možná nepatří mezi nejžhavější témata digitálního světa – dokud o nich nezačne mluvit Vitaly Friedman. Na WebExpo 2024 předvedl, že inkluzivní design není jen o splněných checkboxech, ale hlavně o lidech. S energií sobě vlastní obrátil zažité přístupy naruby a ukázal, že skutečně přístupný web je nejen možný, ale i nezbytný.

Efektivnější vývoj UI nebo API: Co si odnést z WebExpo 2025?

Různé
Komentáře: 0
Jak snadno implementovat moderní uživatelské rozhraní? Které funkce brzdí rychlost vašeho webu? A kdy raději sami přibrzdit, abychom využitím AI nepřekročili etické principy? Debatu aktuálních dev témat rozdmýchá sedmnáctý ročník technologické konference WebExpo, která proběhne v Praze od 28. do 30. května. Který talk či workshop si rozhodně nenechat ujít? Toto je náš redakční výběr z vývojářských hroznů.

Zapřáhněte AI jako nikdy předtím. Květnová konference WebExpo přivítá hvězdy technologického světa

Od 28. do 30. května 2025 promění pražský Palác Lucerna na tři dny technologická konference WebExpo. Na programu je více než 80 přednášek a workshopů od expertů z celého světa. WebExpo tradičně propojuje vývojáře, designéry, marketéry i byznysové lídry a nabízí praktické dovednosti, strategické myšlení a přináší nejnovější trendy nejen v oblasti AI.