Ao invés de usar a API json-server, fiz minha propria API usando java e spring boot, com todas as operações do CRUD, e tudo funcionou muito bem, menos a atualização/update do registro, que retorna o erro:
Access to XMLHttpRequest at 'http://localhost:8080/contatos/2' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
O erro é estranho porque eu fiz a configuração de CORS no spring boot e o erro ocorre apenas ao atualizar o registro, no formulário.
No spring boot retorna o erro:
2025-04-01T09:20:40.057-03:00 WARN 10272 --- [indexa-api] [nio-8080-exec-5] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' is not supported]
No spring boot eu configurei uma classe para tratamento de CORS:
@Configuration
public class CorsConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedOrigins("http://localhost:4200")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD", "TRACE", "CONNECT");
}
}