In einer React-Anwendung, die in einen Go-Server integriert ist, versucht der Server, während des Vorgangs ein Cookie zu setzen Login-Antwort. Das Cookie wird jedoch nicht vom Browser gespeichert, obwohl es in der Antwort des Netzwerk-Tabs zurückgegeben wird.
Die bereitgestellten Codeausschnitte zeigen Folgendes an:
Die Die Funktion http.SetCookie() wird verwendet, um das Cookie mit den folgenden Einstellungen zur Antwort hinzuzufügen:
Screenshots von der Registerkarte „Netzwerk“ zeigen, dass das Cookie tatsächlich in den Antwortheadern zurückgesendet wird.
Der Schlüssel zur Lösung dieses Problems liegt im Anmeldeinformations-Flag der Fetch-API. Wenn Sie eine Abrufanforderung stellen, die ein Cookie in der Antwort vorwegnimmt, müssen unbedingt die Anmeldeinformationen festgelegt werden: „include“.
fetch(`${url}/login`, { method: "POST", headers: { "Content-Type": "application/json", }, credentials: "include", // This line has been added body: JSON.stringify({ email: userDetails.email, password: userDetails.password, }), }).then((response) => { ...
Durch das Festlegen der Anmeldeinformationen auf „include“ Der Browser versteht, dass er das in der Antwort enthaltene Cookie akzeptieren und speichern sollte. Diese Konfiguration stellt sicher, dass der Browser das Cookie korrekt speichert und für spätere Anfragen verfügbar macht.
Das obige ist der detaillierte Inhalt vonWarum speichert mein Browser keine von meinem Go-Server gesetzten Cookies in einer React-App?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!