Přesměrování ajaxových požadavků
- jtousek
- Člen | 951
Zdravím,
při pokusu o přesměrování ajaxového požadavku pomocí
$this->redirect(…) v Presenteru se přesměrování neprovede, místo toho
se pouze odešle payload kde je jen proměnná redirect a cílová URL adresa.
Proč to tak je?
Zkusil jsem přesměrovat pomocí
<?php
$this->terminate(new Nette\Application\RedirectingResponse('/url/adresa'));
?>
jenže výsledkem byla nefunkčnost laděnky – nerozpoznala už, že jde
o ajaxový požadavek (chyběla hlavička X-Requested-With) takže neposlala
report na konzolu firebugu.
Jak tedy tyto požadavky přesměrovávat? Zjistit na straně klienta, že
server vrátil payload s redirect a odeslat nový požadavek? Osobně mi to
připadá jako zbytečný pingpong… Je možné požadavek za určité
podmínky (např. uživatel nepřihlášen) přímo vnitřně přesměrovat na
jiný presenter a view?
Editoval jtousek (10. 12. 2009 15:24)
- redhead
- Člen | 1313
Takhle ovšem funguje redirect (ping-pong), při redirectu je to jako kdybys vytvořil nový request na stránku, to musí ošéfovat browser. Čili ajaxově musíš vytvořit novej request. Pokud to chceš udělat v jednom requestu tak zkus metodu forward (myslím, že parametry jsou stejné jako u redirect)
Editoval redhead (10. 12. 2009 15:38)