2016-04-14 3 views
0

In Angularjs config Datei.Browser senden die OPTIONS-Anfrage bringt das Cookie nicht auf den Server?

.config(function($httpProvider) { 
    $httpProvider.defaults.withCredentials = true; 
}) 

Die Anwendung der Angularjs auf front-end, mit Spring MVC auf backend verwenden. Wenn Benutzer die Anwendung anmelden, schreiben Sie das Backend session an die front-end. Also die Anwendung mit dem Cookie zu auth.

Die GET und POST Anfrage alle beide ok. Aber es gibt eine Anfrage, welche Methode die "PUT" verwendet, sendet der Browser eine Anfrage, deren Methode ist "OPTIONS". Zu diesem Zeitpunkt kann der Server die Anforderung nicht autorisieren. Weil es keinen Keks gibt. So senden Browser die "OPTIONS" Anfrage kann es die cookie zu Server bringen.

Antwort

0

Sie sollten sicherstellen, dass Ihr Server OPTIONS-Anfragen separat behandelt und nicht über die üblichen Filter ausführt (vorausgesetzt, Sie verwenden ein Java-basiertes Back-End). Stellen Sie jedoch sicher, dass der CORS-Filter alle Zulassungs- * Header ihren jeweiligen Antworten hinzufügt.

Diese Anforderungen sollten als nicht authentifiziert behandelt werden, was bedeutet, dass sie keine Anmeldeinformationen erfordern, nicht an eine bestimmte Sitzung gebunden sind und vor allem keine Cookies festlegen, die sich auf Ihre Sitzung auswirken können.

Aufgrund der Nichtübereinstimmung der Sitzungs-ID blockiert der CORS-Filter die Anforderungen.

Dies ist ein Missverständnis. CORS ist für jede Benutzersitzung agnostisch. Ihre Serverauthentifizierungslogik blockiert die Anforderung aufgrund der neu erstellten Sitzungs-ID, die ungültig ist.

Von: https://stackoverflow.com/a/34640755/3279156

Verwandte Themen