Gestern hatte ich ähnliches Problem und fand die Lösung. Ich hoffe, das wird auch anderen helfen.
Problem: Angenommen www.somewebsite.com und IFRAME im Inneren eine Website gibt es Whcih PHP-Datei von meinem Server lädt, www.myserver.com/welcome.php. Die Webseite wurde erfolgreich geladen, genauso wie meine Willkommensseite und es zeigte so etwas wie "Hallo Bob", so dass es erfolgreich gefunden und eingeloggt wurde.
Danach machte mein JavaScript AJAX-Aufrufe zu einer anderen PHP-Datei, und die Antwort war nett im Zustand "nicht autorisiert", so dass SESSION-Daten vollständig fehlten. Nach der Seitenaktualisierung funktionierte alles korrekt. Und das geschah nur unter IE8!
Ich dachte, dass das Problem mit Sitzungscookies zum Server war, aber als ich Fiddler installierte, fand ich, dass IE8 Cookies sowie PHPSESSID korrekt sendete, aber Server war irgendwie unfähig, korrektes SESSION-Objekt zu erkennen. Eine weitere seltsame Sache war, dass zweite Zeitserver folgende Header gesendet:
P3P: CP = "IDC DSP COR ADM Devi TaiI PSA PSD Ivaí IVDi CONi HIS OUR IND CNT"
aber erstmals nicht. Nachdem dieser Header manuell in PHP-Skript hinzugefügt wurde, funktionierte alles wie ein Zauber!
Dann, als ich, dass „p3p Abrakadabra“ googeln, fand ich folgende Website:
http://adamyoung.net/IE-Blocking-iFrame-Cookies
Fazit: Vergewissern Sie sich, dass Sie auf jeder Seite den Header sind zu senden, die ein Cookie setzt .
Und das ist nicht nur im Zusammenhang mit IE8 + PHP Kombination, gleiche Problem tritt bei IE8 + ASP.NET, IE8 + JSP usw.
kommt der IE 8 die schicken Cookie auf normale Anfrage? – Gumbo
Auf normale Anfrage funktioniert ok, aber nach Ajax-Anfrage löscht es Cookie. –
CodeIgniter Session-Implementierung saugt –