2016-11-17 15 views
10

pracuję z serwerem Jersey, która zwraca cookie w następujący sposób:Cookie nie jest ustawiony na localhost w Chrome lub Firefox

return Response.ok() 
    .cookie(
     new NewCookie(
      "userAccessToken", userTokenDTO.getToken(), "/", "", 
      "what is this", 3600, false 
     ) 
    ).build(); 

Kiedy wywołać metodę, która zwraca cookie, pojawia się następujący skutkować chrome: Request and response headers

mogę nawet zobaczyć, że chrom uznała moje ciasteczko: Cookie recognized

Ale z jakiegoś powodu nie jest ustawiona w zakładce cookie:

No cookie shown

Próbowałem ustawienie domeny zarówno na false, null, "", tworząc wpis w pliku hosts zmiana nazwy 127.0.0.1.

return Response.ok() 
    .cookie(
      new NewCookie(
        "userAccessToken", userTokenDTO.getToken(), "/", "127.0.0.1", 
        "what is this", 3600, false) 
    ).build(); 

Pracuje w IE 11, ale nadal nie Chrome ani Firefox ...

Próbowałem wiele czasu, aby wprowadzić inną nazwę hosta 127.0.0.1. W tym przykładzie jest to text.myexample.com. Nadal nie działa w żadnej innej przeglądarce niż IE11.

return Response.ok() 
    .cookie(
      new NewCookie(
        "userAccessToken", userTokenDTO.getToken(), "/", "test.myexample.com", 
        "what", 7200, false) 
    ).build(); 

Starałem się wykonać następujące czynności w konsoli Google Chrome:

document.cookie = "userAccessToken=72bebbe0-44fd-45ce-a6e1-accb72201eff;Version=1;Comment=what;Domain=test.myexample.com;Path=/;Max-Age=7200" 

który jest plik cookie w nagłówku zwrócony przez serwer w Chrome. To działa dobrze. Nie mam dosłownie pojęcia, co się tutaj dzieje.

+1

Może to dotyczyć: http://stackoverflow.com/questions/1134290/cookies-on-localhost-with-explicit-domain spróbuj w pliku hosts umieścić nazwę hosta dla swojej aplikacji, np. '127.0.0.1 myapp.local' i użyj go jako nazwy hosta. –

+1

Próbowałem już tego z wieloma różnymi nazwami bez powodzenia. – Amnestic

+0

To jest problem tylko z localhostem, działa dobrze na innych adresach URL patrz poniżej link tutaj cookie działa, ale w lokalnym nie działa http://jerseyexample-ravikant.rhcloud.com/rest/jws/say/Hi – gladiator

Odpowiedz

3

Okazuje się, że problem był związany z biblioteką zwrcania używam. Jeśli w żądaniu nie zostaną uwzględnione {poświadczenia: "ten sam pochodzenie"}, plik cookie odpowiedzi nie jest ustawiony.

Aby uzyskać więcej informacji, zobacz https://github.com/github/fetch/issues/386.

0

Jest to problem tylko z localhost, działa dobrze na innych adresów URL patrz niżej linkiem tutaj prace ciasteczek, ale w lokalnym zawiedzie http://jerseyexample-ravikant.rhcloud.com/rest/jws/say/Hi

na localhost można przejść z dołu.

return Response.status(200).entity(output) 

       .header("Set-Cookie", "userAccessToken=toke;lang=en-US; Path=/; Domain=localhost") 
       .build(); 

enter image description here

Zobacz kartę sieciową

nagłówki odpowiedzi Content-Length: 18 Content-Type: text/html Data: piątek, 25 listopad 2016 10:19:15 GMT Czas przetwarzania: 0 millisekund Serwer: Apache-Coyote/1.1 Zestaw plików cookie: userAccessToken = toke; lang = en-US; Ścieżka = /; Domain = localhost

Network tab

+0

Czy widzę żądanie sieci zakładka dla ustawienia ustawienia pliku cookie? Twój przykład nie działa w moim własnym projekcie. – Amnestic

+0

dodał zdjęcie w oryginalnej odpowiedzi – gladiator

Powiązane problemy