Ich habe ein Login-Formular mit AngularJS für die Benutzerauthentifizierung implementiert. Unten ist mein Service für die Anmeldung mit Post-Anfrage:Access-Control-Allow-Origin-Header wurde nicht gefunden, nachdem der CORS-Filter hinzugefügt wurde
Ich habe den folgenden Fehler, wenn ich es ausführen.
XMLHttpRequest cannot load http://localhost:8080/login.No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8081' is therefore not allowed access.
Ich habe einige Nachforschungen gemacht und herausgefunden, dass die Kopfzeile auf der Serverseite hinzugefügt werden muss. Nach diesen post, habe ich folgendes meine Ruhe-Service
@Component
public class SimpleCORSFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}
Allerdings habe ich immer noch die gleichen Fehler.
Haben Sie überprüft, was 'request.getHeader (" Origin ")' zurückgibt? –
Wie hast du die Get-Anfrage geschrieben? –
@PritamBanerjee Der Login-Dienst ist eigentlich eine Post-Anfrage. Siehe meine Änderungen im ursprünglichen Post. Da die Authentifizierung über die Spring-Sicherheit erfolgt, ist für "http: // localhost: 8080/login" kein Controller von der Serverseite notwendig. – Nasreddin