Heim  >  Artikel  >  Backend-Entwicklung  >  Warum speichert mein Browser keine Cookies von Cross-Origin-Anfragen?

Warum speichert mein Browser keine Cookies von Cross-Origin-Anfragen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-24 20:49:18239Durchsuche

Why Won't My Browser Store Cookies from Cross-Origin Requests?

Browser weigert sich, Cookies in Cross-Origin-Anfragen zu speichern

Problembeschreibung:

Eine React-Anwendung, die einen Go-Server verwendet stößt auf Schwierigkeiten beim Speichern eines in der Antwort auf die Anmeldeanfrage gesendeten Cookies, obwohl es erfolgreich gesetzt wurde. Das Cookie ist auf der Registerkarte „Netzwerk“ sichtbar, wird jedoch von den Browsern (Chrome und Firefox) nicht gespeichert.

Ursache und Lösung:

Nach weiterer Untersuchung ist es Es wurde festgestellt, dass es sich bei der fehlenden Zutat um das Flag „Anmeldeinformationen“ in der Abrufanforderung handelte. Durch die Einstellung von „Anmeldeinformationen: „include““ kann der Browser in der Antwort empfangene Cookies verarbeiten und speichern. Die korrigierte Abrufanforderung lautet:

fetch(`${url}/login`, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
    },
    credentials: "include", // This here
    body: JSON.stringify({
        email: userDetails.email,
        password: userDetails.password,
    }),
}).then((response) => { ...

Zusätzliche Vorsichtsmaßnahmen:

  • Stellen Sie sicher, dass der Server mit dem CORS-Handler konfiguriert ist, um ursprungsübergreifende Anforderungen zuzulassen Anmeldeinformationen.
  • Für benutzerdefinierte CORS-Konfigurationen setzen Sie „AllowCredentials“ auf wahr.
  • Überprüfen Sie die Antwortheader, um zu bestätigen, dass das Cookie wie erwartet gesetzt wird.

Das obige ist der detaillierte Inhalt vonWarum speichert mein Browser keine Cookies von Cross-Origin-Anfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn