Mi aplicación front-end da este error:
El acceso a XMLHttpRequest en 'http://localhost:9025/customer/registerDocs/' desde el origen 'http://localhost:3000' ha sido bloqueado por la política de CORS: la respuesta a la solicitud de verificación previa no pasa la verificación de control de acceso: lo hace no tiene el estado HTTP ok.
cuando se llama esto:
updateDocsStatus() { return ApiService.postData('http://localhost:9025/customer/registerDocs'); }Este es el método del controlador en la API:
@PostMapping(value = Constants.REGISTER_DOCS_PATH, consumes = {MediaType.APPLICATION_JSON_VALUE}, produces = {MediaType.APPLICATION_JSON_VALUE}) @ResponseStatus(HttpStatus.OK) public void registerUserForDocs(HttpServletRequest request){ String username = securityService.getUsername(request); customerHelper.registerCustomerForEdocs(username); }No puedo evitar sentir que el problema es algo en la parte delantera. ¿Me estoy perdiendo algo obvio aquí?
Si está utilizando Spring Security, CORS se puede deshabilitar para todas las rutas (no es la mejor práctica) agregando el bean de seguimiento
@Configuration public class WebConfiguration implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedMethods("*"); } }O puede ajustar el método POST y su ruta de documentación específica (cliente/registerDocs)
esto es lo que uso, probablemente sea mejor usarlo con un perfil de desarrollo específico
@Configuration public class CorsConfiguration implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") .allowedMethods("*") .allowedOrigins("http://localhost:3000") .allowedHeaders("*"); } }