Ich probiere die neue Fetch-API aus, habe aber Probleme mit Cookies. Insbesondere nach einer erfolgreichen Anmeldung gibt es in zukünftigen Anforderungen einen Cookie-Header, aber Fetch scheint diese Header zu ignorieren, und alle meine mit Fetch gestellten Anforderungen sind nicht autorisiert.
Liegt es daran, dass Fetch noch nicht bereit ist oder Fetch nicht mit Cookies funktioniert?
Ich baue meine App mit Webpack. Ich verwende auch Fetch in React Native, das nicht das gleiche Problem hat.
same-origin
(was tut immer noch Arbeit) bedeutet , dass mehr Header (Cookies, etc.) eingehalten werden , aber Ihr Code wird nur begrenzten Zugang zu der Antwort hat.document.cookie
, aber dennoch für Ajax- oder Abrufanfragen verfügbar ist.Zusätzlich zur Antwort von @ Khanetor für diejenigen, die mit Cross-Origin-Anfragen arbeiten:
credentials: 'include'
Beispiel für eine JSON-Abrufanforderung:
https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials
quelle
document.cookie
es ausreicht , nur den Wert in festzulegen , um ihn in die Anforderungen aufzunehmen.Habe gerade gelöst. Nur zwei f. Tage der Brutforce
Für mich lag das Geheimnis in Folgendem:
Ich habe POST / api / auth angerufen und festgestellt, dass Cookies erfolgreich empfangen wurden.
Rufen Sie dann GET / api / users / with auf
credentials: 'include'
und erhalten Sie 401 unauth, da mit der Anfrage keine Cookies gesendet wurden.Der SCHLÜSSEL soll auch
credentials: 'include'
für den ersten/api/auth
Anruf eingestellt werden.quelle
credentials: 'include'
für den ersten angebenPOST /api/auth
Wenn Sie dies im Jahr 2019 lesen,
credentials: "same-origin"
ist dies der Standardwert.quelle
Fügen Sie hier einfach die richtigen Antworten für
.net
webapi2
Benutzer hinzu.Wenn Sie verwenden,
cors
weil Ihre Client-Site von einer anderen Adresse als Ihrer bereitgestellt wird,webapi
müssen Sie auchSupportsCredentials=true
die serverseitige Konfiguration einbeziehen.quelle
Das funktioniert bei mir:
Dann bauen Sie Ihren Anruf auf:
quelle