Estoy haciendo una llamada API GET al servidor con los siguientes encabezados en angular 2. Mi código angular 2 es el siguiente:
let headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Authorization', `${this.publisherAccessTokenVar}`); let options = new RequestOptions({ headers: headers }); return this.http.get( 'https://blahblah', options) .retryWhen((error) => error.delay(this.appConfig.serviceCallRetryDelay)) .timeout(this.appConfig.serviceCallRetryTimeOut) .map((response: Response) => response.json());MI código CORS de arranque de resorte es el siguiente:
HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin", ((HttpServletRequest) req).getHeader("Origin")); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("Access-Control-Allow-Methods", "POST,PUT, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Access-Control-Request-Method,Access-Control-Request-Headers,Content-Type, Accept, X-Requested-With, remember-me, Authorization, X-XSRF-TOKEN"); chain.doFilter(req, res);Recibo el siguiente error:
OPTIONS http://blah-blah.com/abcd/logout 403 (Forbidden) XMLHttpRequest cannot load http://blah-blah.com/abcd/logout. Response for preflight has invalid HTTP status code 403Como solucionar esto??
debe agregar @CrossOrigin antes de la declaración de su controlador.