Internet Explorer 8 nicht übergeben, session-cookie für die ajax-Anfrage
Habe ich einfache php-Anwendung, die auf allen Browsern funktioniert, außer auf IE8 beta 2 problem tritt auf, wenn ich versuche, eine update-Tabelle-Feld per Ajax-Aufruf (jQuery post-Methode). Mit IE8 debugger ich heraus, dass der IE8 nicht send session cookie, damit die php-Skripte leitet auf die login-Seite nicht ausgeführt werden, sondern die gewünschte Aktion.
Was kann ich tun, um diese Arbeit zu machen.
Bearbeiten:
Ich habe nicht erwähnt, dass ich mit Code Igniter also ich habe dieses problem gelöst durch Austausch der Code-Igniter-default-session-Implementierung mit den einheimischen. Code igniter-default-session-Implementierung verwendet Cookies um alle Daten zu speichern.
Auf normale Anfrage funktioniert ok, aber nach dem ajax-request löscht es Cookies.
CodeIgniter Session-Implementierung nervt
InformationsquelleAutor Edin Omeragic | 2009-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte gestern ähnliches problem und die Lösung gefunden. Ich hoffe, das wird helfen, jemand anderes auch.
Problem: Angenommen, es gibt eine website http://www.somewebsite.com und IFRAME drin welches lädt php-Datei von meinem server, http://www.myserver.com/welcome.php. Website war das laden erfolgreich, sowie meine willkommen-Seite, und es zeigte so etwas wie "Hallo Bob", so dass es erfolgreich gefunden Benutzer und protokolliert ihn.
Danach mein JavaScript war die Bereitstellung von AJAX-Aufrufe an eine andere PHP-Datei, und die Antwort war irgendwie "nicht autorisiert" - Zustand, also die SESSION-Daten wurde komplett fehlen. Nach der Aktualisierung der Seite war alles korrekt funktioniert. Und dieses geschah nur unter IE8!
Dachte ich, dass problem mit versenden von Sitzungs-cookies an den server, aber wenn ich installiert Fiddler, fand ich, dass der IE8 war das versenden von cookies sowie PHPSESSID richtig, aber server war irgendwie nicht in der Lage zu erkennen, die richtigen SESSION-Objekt. Eine weitere seltsame Sache war, dass 2. mal server gesendet folgenden header:
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS UNSEREN IND CNT"
aber zunächst mal keine. Nach dem hinzufügen, dass die header manuell im PHP-Skript, alles funktionierte wie ein Charme!
Dann, wenn ich gegoogelt, dass "p3p-abracadabra", fand ich folgende Website:
http://adamyoung.net/IE-Blocking-iFrame-Cookies
Fazit: Stellen Sie sicher, dass Sie senden Sie die Kopfzeile auf jeder Seite, setzt ein cookie.
Und das ist nicht nur Bezug auf IE8 + PHP Kombination, das gleiche problem passiert bei IE8 + ASP.NET, IE8 + JSP, etc.
InformationsquelleAutor GermanZ
Habe ich nicht den IE8 selbst, aber Ihre Cookies blockiert werden können, die von Internet Explorer ist seltsam, security-Richtlinien. Eine mögliche Lösung kann sein, sich zu beschäftigen P3P (das ist auch die Methode für das abrufen von cookies zu arbeiten innerhalb eines IFRAME).
Schafft die richtigen P3P-policy kann ein bisschen Arbeit, aber Sie sollten in der Lage sein, Informationen zu finden, die Sie brauchen, zu http://www.p3ptoolbox.org/
InformationsquelleAutor mikl
Ich hatte das gleiche problem im IE8-RC1:
1)ein user geht auf die login-Seite und eine leere session-cookie gesetzt
2)Der Benutzer meldet sich an, und eine validierte session-cookie und javascript öffnet ein neues Fenster und schließt das aktuelle Fenster.
3)Das neue Fenster wird geöffnet und enthält eine leere session-cookie.
4)Der Benutzer wird auf die Anmeldeseite umgeleitet
Änderte ich Schritt 1, so dass die leere cookie nicht gesetzt wurde - ich schicke nur die session-cookie, wenn seine validiert. Diese behoben das problem für mich.
InformationsquelleAutor Mike Blandford
Ich habe Probleme damit, IE8 zu verwenden SSL-Zertifikate (PK12) - Dateien als legitimationsmittel. Wenn ich will, so schützen Sie ein Verzeichnis und Kraft eine passende web-Zertifikat in den browser, bevor Zugang gewährt wird. Es funktioniert mit IE7 und allen Versionen von Mozilla - nur eben nicht IE8. Es machte meiner Frau Diktier-system unbrauchbar. Eine andere Sache, die ich bemerkt ist, dass, wenn man setzt das PHPSESSID-cookie, Liste der domain als .net und nicht mydomain.net.
InformationsquelleAutor
Als workaround kann man einbetten, die SessionID als parameter in der uri.
Sehen übergeben session-id im php-Handbuch.
InformationsquelleAutor Allain Lalonde