2016-11-17 3 views
10

ich mit einem Jersey-Server arbeite, die ein Cookie auf folgende Weise zurück:Cookie ist nicht auf localhost in Chrome oder Firefox eingestellt

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

Als ich die Methode aufrufen, die das Cookie zurück, erhalte ich die folgende führen in Chrom: Request and response headers

ich kann sogar sehen, dass Chrom mein Cookie erkannt hat: Cookie recognized

Aber aus irgendeinem Grund nicht in der Cookie-Register gesetzt ist:

No cookie shown

Ich habe versucht, die Domain sowohl auf false, null "" Einstellung, einen Eintrag in der Hosts-Erstellung 127.0.0.1 Datei umbenennen.

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

Arbeiten in IE 11, aber immer noch nicht Chrome noch Firefox ...

Ich habe mehrere Zeit versucht, einen anderen Host-Namen für 127.0.0.1 einzufügen. In diesem Beispiel ist es text.myexample.com. Es funktioniert immer noch nicht in einem anderen Browser als IE11.

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

Ich habe versucht, die folgenden in der Konsole von Google Chrome zu tun:

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

Welche das Cookie im Header vom Server in Chrome zurückgekehrt ist. Das funktioniert gut. Ich habe buchstäblich keine Ahnung, was hier vor sich geht.

+1

Vielleicht ist dies verwandt: http://stackoverflow.com/questions/1134290/cookies-on-localhost-with-explicit-domain versuchen Sie in Ihrer Hosts-Datei einen Hostnamen für Ihre Anwendung, z. '127.0.0.1 myapp.local' und verwende sie als Hostnamen. –

+1

Ich habe das schon mit mehreren verschiedenen Namen ausprobiert, ohne Glück. – Amnestic

+0

Es ist nur ein Problem mit localhost, funktioniert gut auf anderen URLs siehe unten Link hier Cookie funktioniert, aber in lokalen es scheitert http://jerseyexample-ravikant.rhcloud.com/rest/jws/say/Hi – gladiator

Antwort

3

Stellt sich heraus, das Problem in der Bibliothek holen verwandt war ich verwende. Wenn Sie in der Anfrage {credentials: 'same-origin'} nicht angeben, wird das Antwort-Cookie nicht gesetzt.

Weitere Informationen finden Sie unter https://github.com/github/fetch/issues/386.

0

Es ist ein Problem mit localhost nur finden funktioniert gut auf andere URLs untenstehenden Link hier Cookie funktioniert, aber in lokalen es nicht http://jerseyexample-ravikant.rhcloud.com/rest/jws/say/Hi

für localhost Sie unten gehen kann.

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

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

enter image description here

Siehe Netzwerk-Registerkarte

Antwortheader Content-Length: 18 Content-Type: text/html Datum: Fr, 25. November 2016 10.19.15 GMT ProcessingTime: 0 Millisekunden Server: Apache-Coyote/1.1 Set-Cookie: userAccessToken = toke; lang = de-DE; Pfad = /; Domain = localhost

Network tab

+0

Kann ich die Netzwerkanforderung sehen Registerkarte für die Anfrage, die den Cookie setzt? Ihr Beispiel arbeitet nicht an meinem eigenen Projekt. – Amnestic

+0

hat das Bild in der ursprünglichen Antwort hinzugefügt – gladiator

Verwandte Themen