Redirect uprostřed AJAX requestu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ODIS
Člen | 33
+
0
-

Snažím se dojít k následujícímu stavu:

  1. poslat na presenter AJAX request
  2. nečekat na zpracování (cca 1 minuta) a provést redirect na jinou stránku

Když pošlu request na skript mimo prostředí Nette, tak mi v bezprostředním redirectu nic nebrání, ale při volání presenteru se zřejmě vyžaduje, aby byl proces před redirectem dokončen.

Nevíte někdo čím by to mohlo být způsobeno? Problém jsem nakonec vyřešil jinak, ale brouk v hlavě zůstal :).

GEpic
Člen | 566
+
0
-

ODIS napsal(a):

Snažím se dojít k následujícímu stavu:

  1. poslat na presenter AJAX request
  2. nečekat na zpracování (cca 1 minuta) a provést redirect na jinou stránku

Když pošlu request na skript mimo prostředí Nette, tak mi v bezprostředním redirectu nic nebrání, ale při volání presenteru se zřejmě vyžaduje, aby byl proces před redirectem dokončen.

Nevíte někdo čím by to mohlo být způsobeno? Problém jsem nakonec vyřešil jinak, ale brouk v hlavě zůstal :).

Redirect musíš provést v javascriptu a AJAX poslat asynchroně (tzn. nedávat redirect do success ajaxu, ale jako další příkaz). PHP není asynchroní, takže redirect v Nette ti nepomůže.

Editoval GEpic (21. 8. 2016 22:18)

ODIS
Člen | 33
+
0
-

Redirect musíš provést v javascriptu a AJAX poslat asynchroně (tzn. nedávat redirect do success ajaxu, ale jako další příkaz). PHP není asynchroní, takže redirect v Nette ti nepomůže.

Nevím, jestli si rozumíme. Nechci provést redirect ani přes JS ani přes PHP. Chci mít možnost po AJAX requestu kliknout na odkaz vedoucí na jinou stránku a nebýt blokován dokončením poslaného AJAX requestu.

Jan Tvrdík
Nette guru | 2595
+
+1
-

@ODIS Nehledáš náhodou Session::close()? Dva procesy nemůžou mít zároveň otevřenou stejnou session.

ODIS
Člen | 33
+
0
-

Jan Tvrdík napsal(a):

@ODIS Nehledáš náhodou Session::close()? Dva procesy nemůžou mít zároveň otevřenou stejnou session.

@JanTvrdík to je přesně ono! Mockrát díky za přesnou odpověď :).