alle. Ich bin neu in Angular 2 und Spring Framework. Ich versuche eine einfache Get-Anfrage mit einem Autorisierungsheader (Basic Auth).Antwort für Preflight hat ungültigen HTTP-Statuscode 401 - Spring
Ich benutze Spring Boot (1.2.6.RELEASE), die auch relevant sein können. Meine CORS-Konfiguration sieht so aus.
@Component
public class SimpleCorsFilter implements Filter {
private final Logger log = LoggerFactory.getLogger(SimpleCorsFilter.class);
public SimpleCorsFilter() {
log.info("SimpleCORSFilter init");
}
@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, PUT");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, authorization, x-auth-token");
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}
Und hier ist, wie es von der Client-Seite
this.headers.append('Authorization', 'Basic dXNlcjphZG1pbg==');
return this.http
.get(`http://localhost:8080/api/login?username=${username}`, {headers : this.headers})
.map(response => response.json().data as any);
}
Ich bekomme immer wieder sieht:
XMLHttpRequest kann nicht geladen werden http://localhost:8080/api/login?username=user. Antwort für Preflight hat ungültige HTTP-Statuscode 401
Bitte helfen Sie, ich weiß nicht, was ich bin fehlt ... ich um eine Menge von Stellen bereits überprüft, konnte aber nicht dorthin gelangen ...
HTTP 401 bedeutet, dass Ihre Anfrage Genehmigung wegen fehlender nicht erfüllt werden kann konfigurieren erstreckt, überprüfen, ob funktioniert –
Können Sie den response.setHeader entfernen ("Access-Control-Allow-Credentials", "true"); und ausprobieren? –
@TharsanSivakumar, bekam das gleiche denken, danke trotzdem –