2013-04-02 18 views
8

Mam dwie aplikacje na następnych domenach: www.bar.com i www.foo.bar.com. Druga aplikacja umożliwia autoryzację poprzez pierwszej aplikacji (przy użyciu żądania domenach) Po tym ja ustawia cookie do przeglądarki, a także w programie Internet Explorer nie działa:Internet Explorer ustawia pliki cookie dla różnych domen dla autoryzacji

$.cookie("SESSION_KEY", loginResult.sessionKey, { 
     expires: 365, 
     path: "/", 
     domain: ".bar.com" 
}); 

kod działa we wszystkich przeglądarkach Internet Explorer przeciwko wyjątkowych możliwości .9 Plik cookie nie jest ustawiony. Jak mogę to naprawić?

Odpowiedz

1

Jest to spowodowane ustawieniami IE. Z menu Tools wybierz opcję Internet Options. Przejdź do karty Security. Wybierz strefę treści internetowych i kliknij Custom Level, aby otworzyć Ustawienia zabezpieczeń.

Znajdź ustawienia Miscellaneous. Spróbuj włączyć Access data sources across domains. Aby ustawienia zaczęły obowiązywać, może być konieczne ponowne uruchomienie przeglądarki IE.

+8

Ale to aplikacja internetowa. Nie mogę powiedzieć wszystkim użytkownikom, aby zrobili to w swojej przeglądarce. :) – Andrew

2

IE, jak tylko jednej przeglądarki internetowej na rynku, realizuje ciowo standart P3P (co jest o plikach cookie akceptacji w CORS)

Więc można ustawić ciasteczka wykorzystujące odpowiedzi serwera - w tym celu należy ustawić ten nagłówek w odpowiedź serwera (który ustawianie ciasteczek) (I kopiuj-wklej poniżej linii z mojego projektu symfony PHP):

$response->headers->set('P3P', 'CP="random_text"'); 

należy również pamiętać o dodać flagę „withCredentials = true” na żądanie Cors (w innym przypadku wszelkie ciasteczka będą wysyłane/zapisywane z żądania/odpowiedzi).

Powiązane problemy