Nastavení cookie přes ajax – nefunguje

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

Ahoj,

nastavuji 2 cookie přes ajax v handle funkci mám metodu pro uložení. Když jsem zkusil si pod uložením ihned dumpnout cookies, vrací null. Zkusil jsem pro jistotu přidat i uložení cookies v JS ještě přes ajax requestem, ale také bez úspěchu.

Na tu handle funkci by měly být pak navázány další operace ohledně řazení podle té cookie, překreslení snippetů.

Poradí někdo?

díky

Editoval Landsman (26. 8. 2016 14:56)

Michal Hlávka
Člen | 190
+
0
-

Ahoj,

máš na serveru správně nastavené cookie? Doménové jméno, savePath, … Nebo jednodušeji, cookie se ti neukládá jenom přes volání té metody? Ukládáš to cookie před tím, než se odešle hlavička odpovědi?

Edit: Kdy přistupuješ k cookie, které chceš načíst? Musíš znova provést požadavek, aby server vrátil cookie, které jsi v minulém requestu uložil.

Editoval emptywall (26. 8. 2016 15:08)

Landsman
Člen | 152
+
0
-

@emptywall Co je třeba nastavit? Po refreshi to běhá v pořádku, problém je právě jen v při ukládání přes ajax request. Zdá se, že to aplikací prostě neprobublá.

Já ihned pod metodou uložení cookie zkusil cookie vypsat „tvrdým dumpem“.

$this->response->setCookie('muj_klic', "12345", new \DateTime("+ 30 days"))
var_dump($this->request->getCookie('muj_klic'));
die;

Neměl by jsi čas mrknout přes team viewer? To by bylo rychlejší, děkuji.

Editoval Landsman (26. 8. 2016 15:44)

iguana007
Člen | 970
+
+1
-

No cookie se preci posilaji zpet klientovi, aby se ulozily do browseru, takze ten dump ti preci nemuze fungovat, protoze response ke klientovi jeste nedorazi, tudiz cookie v prohlizeci neexistuje.
To musis preci videt i v tom svem testovacim kodu: ukladas to do response a hned o radek niz ctes request, ktery ovsem vraci data bez cookie, protoze v dobe vzniku requestu jeste neexistovala…

Landsman
Člen | 152
+
0
-

@iguana007 Máš pravdu. Dal jsem před to cookie.js a už to běhá. Nedošlo mi, že je třeba ještě vlastně odpověď pro prohlížeč.