2017-05-08 1 views
7

In meiner App stelle ich einen Cookie ein und rufe dann fetch('/foo', {credentials: 'same-origin'}) an. Dies wird im Service-Mitarbeiter abgefangen, der caches verwendet, um die Anfrage und die Antwort zwischenzuspeichern. Die Antwort hat Vary: Cookie festgelegt. Dann ändere ich den Cookie und rufe wieder fetch wie oben an. Aber wenn ich im Servicemitarbeiter caches.match rufe, wird die alte Anfrage abgeglichen! Warum passiert dies? Kann ich es reparieren?Warum nicht Vary: Cookie in einem Service-Mitarbeiter arbeiten?

+0

Ich glaube nicht, Service-Mitarbeiter hat diese Funktionalität noch. Aber wenn Sie den Abruf erneut durchführen, können Sie die Anfrage immer noch mit dem neuen Respone aktualisieren. Ich verstehe nicht, warum es nicht funktioniert. Ist es möglich, dass Sie einen Teil des Snippets einfügen? – karthick

Antwort

3

Ich kann nicht kommentieren (low rep), also poste ich hier.

Servicemitarbeiter können die Cookies nicht abfangen. Es gibt eine vorgeschlagene new api in development.
Warum versuchen Sie nicht, einen benutzerdefinierten Header für Ihre Anforderungen abhängig vom Inhalt des Cookies festzulegen.

Antrag 1:
X-Plätzchen-Wert: 1
Vary: X-Plätzchen-Wert

Antrag 2:
X-Plätzchen-Wert: 2
Vary: X-Plätzchen-Wert

+0

Das sieht nach einer guten Idee aus. Ich werde nächsten Montag nachsehen. – Dan