Jedes Mal, wenn ich einen PUT Ajax-Aufruf an meinen Dienst mache, wird der folgende Fehler zurückgegeben:
XMLHttpRequest kann Ссылка nicht laden. Die Antwort auf die Preflight-Anforderung übergibt die Zugriffskontrollprüfung nicht: Auf der angeforderten Ressource ist kein Header "Access-Control-Allow-Origin" vorhanden. Origin ' Ссылка ' ist daher nicht erlaubt. Die Antwort hatte den HTTP-Statuscode 403.
Nach zwei Tagen der Untersuchung habe ich versucht, die nächste Lösung für meinen Code auszuprobieren.
Dies ist die Hauptklasse , in der ich die erforderlichen Klassen lade und die Anwendung starte:
%Vor%Der DispatcherServilet-Initialisierer , in dem ich die Funktion dispatchOptionsRequest:
aktiviere %Vor%Ein Controller für alle OPTIONS Anfragen:
%Vor%Schließlich war der DispatcheServlet Anpassung Initializer die Klasse, die wirklich mein Problem gelöst hat. Die OPTIONS-Anfrage ist fehlgeschlagen, weil der optionsController , den ich implementiert habe, falsch war.
Also habe ich den optionsController entfernt, und durch Hinzufügen der Methode handle in meinem Rest-Controller für die OPTIONS-Anfrage wurde das Problem gelöst :
%Vor%Wenn Sie eine moderne Version von Spring (4.2) verwenden, können Sie von der @CrossOrigin profitieren. In der Tat, wenn Sie Spring & lt; 4.2v Sie können einen Servlet-Filter erstellen und den Header für die CORS-Unterstützung wie folgt anhören:
%Vor%im Spring Boot können Sie diesen Filter als Spring Bean registrieren und Spring registriert den Filter für Sie.
Ich hoffe, dass dir das weiterhilft.
Tags und Links java spring ajax spring-mvc cors