různé sessionid při ajaxovém požadavku v Internet Exploreru
- Jarda
- Člen | 25
Zdravím vás, stal se mi takový nemilá věc.
Mám administraci s loginem a používám tam ajax. Firefox, opera, chrome jedou v pohodě. Ovšem Internet explorer ve verzích 6, 7, 8 ani náhodou. Při ajaxovém požadavku v ie jsem přesměrován znovu na login. Koumal jsem, čím to může být a zjistil jsem, že IE při ajaxu posílá požadavek s jinou session id.
Je to vidět v dumpu $_SERVERu:
Nevíte prosím někdo, jak to řešit? Když jsem googlil našel jsem jako řešení předávání sessionid v url, ale je to bezpečné?
Testuji na php 5.3, nette 0.92 verze pro php 5.2.x
- PetrP
- Člen | 587
sessionid v url nepřenášet.
Řešilo se tu na fóru:
Přepsat tuhle
metodu pomocí
$session->verificationKeyGenerator = array($this, 'generateVerificationKey');
.
Tedy zjistit čím to přesně je.
Nebo si pro ten přenost vytvořit token.
Nicméně myslel jsem že je to už fixle. Zkus aplikaci zmenčit na co nejmenší možnou část kdy se ještě projevuje chyba a pošly nám to, tahle to může být i chyba jinde.
Editoval PetrP (21. 1. 2010 13:33)
- Jarda
- Člen | 25
očesal jsem to na minimum i od databáze a dal ke stažení
- je to bez nette, takže je to potřeba navést na libs dir
- pak je potřeba otevřít na stránce admina „/admin“, protože jsem odmazal routy i moduly na frontend
- přihlásit se lze jako admin heslo: aaa
- k otestování doporučuji použít mazací odkaz nebo editační formulář
- když požadavek proběhne úspěšně měl by se změnit zobrazovaný seznam
ohledně přepsání té metody nebo toho tokenu bych potřeboval trochu podrobněji nakopnoutm, poněvadž jsem v této oblasti lama :)
Předem díky za pomoc
- Jarda
- Člen | 25
Tak poslušně hlásím, že nette je v tom nevinně:).
Chyba byla samozřejmě na straně Internet Exploreru, konkrétně v jeho chápání url. Na svůj develop server jsem měl v hosts nastaven alias „mujprojekt“ a to IE klasicky bralo ok, ale jakmile došlo na ajaxové požadavky, odhlašovalo mě to z administrace, protože požadavky posílal pod jiným session id (proč? jsem ale nezjistil). Jakmile jsem alias nastavil na „mujprojekt.cz“ ajax v IEčkách jede jako po másle.