Autor | Zpráva | ||
---|---|---|---|
TFSi Profil |
#1 · Zasláno: 2. 9. 2009, 20:39:48 · Upravil/a: TFSi
Zdravím,
opět bych měl jeden menší dotaz: co je nejvhodnější pro rozpoznání, zda je požadavek na danou URL "běžný" (adresa byla otevřena třeba kliknutím na odkaz, nebo jí někdo zadal do prohlížeče ručně, ...), nebo jestli požadavek vytvořil AJAX. Když bych vzal kus z nejjednoduššího příkladu: ... httpRequest.open("GET", url, true); httpRequest.onreadystatechange= function () {processRequest(); } ; httpRequest.send(null); ... tak mně napadají dvě možnosti: 1) přidat k URL nějaký parametr; např. ?ajax=true - což je sice jednoduché, ale nepřijde mi to zrovna jako nejlepší řešení... :( 2) posílat nějaké speciální hlavičky - u požadavků přes POST nemám problém poslat hlavičku pomocí setRequestHeader(), ale u GET requestu to neumím (jestli je to vůbec možné) což je pro mně problém Kterou možnost je podle Vás lepší použít, případně mi, prosím, navrhněte další možnosti... Předem díky za veškeré nápady T. |
||
Chamurappi Profil |
#2 · Zasláno: 2. 9. 2009, 20:46:11 · Upravil/a: Chamurappi
Reaguji na TFSiho:
„u požadavků přes POST nemám problém poslat hlavičku pomocí setRequestHeader(), ale u GET requestu to neumím (jestli je to vůbec možné)“ On je v něčem rozdíl? Proč by setRequestHeader nemělo fungovat při metodě První možnost je docela přirozená. Ještě je třetí možnost — tahat přesně stejný zdroj nehledě na to, zda posílá požadavek JS, a vytáhnout si z něj to, co je potřeba, pomocí JS. |
||
TFSi Profil |
#3 · Zasláno: 2. 9. 2009, 21:39:56
Chamurappi
„Proč by setRequestHeader nemělo fungovat při metodě POST? “ Hmm... zajímavé. Když jsem to zkoušel naposledy, tak mi to nešlo, prostě se to chovalo jako kdyby to tu hlavičku vůbec neposlalo. Po přečtení Tvé reakce mi to nedalo a po půl hodině "hraní" mi to funguje... ?!? Díky! „tahat přesně stejný zdroj nehledě na to, zda posílá požadavek JS, a vytáhnout si z něj to, co je potřeba“ Tomu se chci právě vyhnout, Ten AJAX chci nasadit právě proto, aby se aspoň trošku snížily datové přenosy. Takhle můžu celou stránku načíst pouze jednou a potom jenom načítat titulek a obsah stránky :) Takže ještě jednou díky, použiji tu svou druhou možnost :) |
||
Aichi Profil |
#4 · Zasláno: 3. 9. 2009, 16:27:52
Nicméně nevyřčená otázka zůstává, proč to potřebuješ odlišit? Většinou se pro AJAX používají jiná URL, která servírují jiná data, Hlavičky se mi zdají jako zbytečnost.
|
||
Jan Tvrdík Profil |
#5 · Zasláno: 3. 9. 2009, 16:38:03
TFSi:
Ajaxový požadavek se obvykle poznává podle hlavičky X-Requested-With, která při Ajaxovém požadavku má hodnotu XMLHttpRequest. |
||
Časová prodleva: 15 let
|
0