Facebook App funktioniert auf allen Browsern, aber nicht IE8

7

Ich entwickle eine Facebook-App. Leider funktioniert die App auf den meisten Browsern gut (ich habe es auf FF, Chrome und Safari getestet und es hat bei allen gut funktioniert). Jedoch, als ich auf IE8 getestet habe, erhielt ich diese Fehlermeldung, wenn ich versuche, einen AJAX-Aufruf zu einer der Seiten zu machen:

%Vor%

Dies ist die Funktion, die Zeile 515 in facebook.php enthält:

%Vor%

Meine Vermutung ist, dass es entweder mit Sitzungen oder mit IE8-Einstellungen zu tun hat, aber ich bin mir nicht sicher, wie ich dieses Problem beheben kann.

    
khr2003 17.12.2010, 03:07
quelle

2 Antworten

22

Fügen Sie diesen Header über Ihrer PHP-Datei hinzu:

%Vor%

Damit werden domainübergreifende AJAX-Aufrufe in IE funktionieren

BEARBEITEN:

Eigentlich ist die lange richtige Antwort die folgende:

Beim Entwickeln einer IFrame Canvas-Anwendung (oder eines anderen Iframes, das auf einer Seite einer anderen Domäne gehostet wird) ist der Zugriff auf Cookies (sogenannte Drittanbieter-Cookies) unter bestimmten Bedingungen eingeschränkt (Standard-IE-Konfiguration). Firefox, Chrome, Safari, Opera funktionieren wie erwartet, aber IE blockiert den Zugriff auf diese Cookies. Das Vorhandensein dieser Kopfzeile (die als P3P Compact Privacy Policy bezeichnet wird) wird den IE dazu veranlassen, Cookies von verschiedenen Domains zu akzeptieren.

Und wie funktioniert der Session-Code?

Um die Sitzungsinformationen auf dem Server zu verwalten, gibt die Seite einen Sitzungscookie aus, der im Client gespeichert wird. Wenn Ihr iframe eine Sitzung verwendet, muss der Browser das Cookie speichern können.

Das Speichern des Cookies führt dazu, dass die Sitzung verloren geht und Ihr sitzungsbasierter Code so fehlschlägt, wie Sie ihn gepostet haben.

Hoffe, das hilft.

PS: BTW Ich habe keine Ahnung, was all die seltsamen Akronyme im p3p-Header bedeuten. Ich habe viele Variationen davon gesehen, so dass Sie versuchen sollten, ein wenig mehr darüber zu untersuchen.

    
Carlos Muñoz 17.12.2010, 03:28
quelle
0

Wenn Sie auf einer Microsoft .net-Plattform arbeiten, können Sie die P3P-Header in IIS festlegen.

Siehe den folgenden Link, aber Sie können den Mist über eine Richtlinien-XML-Datei überspringen und direkt zum Hinzufügen der Kopfzeile!

Ссылка

    
mike nelson 13.09.2011 08:45
quelle

Tags und Links