1
resposta

Problema com CorsConfiguration, erro ao requisitar por ID

Saudações a todos.

Recentemente criei uma API simples e fiz o deploy dela para o Heroku, resolvi também por criar uma aplicação front-end para requisitar a API e ver ela funcionando.

Os metodos GET, POST e DELETE estão funcionando normalmente, ainda não adicionei o PUT mas irei colocar. Meu problema está no método da API do GET BY ID, quando vou requisitar algo por ID na aplicação front-end surge este erro:

"Requisição cross-origin bloqueada: A diretiva de mesma origem (same origin policy) impede a leitura do recurso remoto em https://starwars-planets-api.herokuapp.com/[object%20Object] (motivo: falta cabeçalho 'Access-Control-Allow-Origin' no CORS)"

Eu já possuo um arquivo de CorsConfiguration:

@Configuration
public class CorsConfiguration implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
            .allowedOrigins("http://localhost:3000")
            .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD", "TRACE", "CONNECT");

    }
}

E além dele, no controller principal da aplicação eu coloquei a tag @CrossOrigin no topo do controller e também antes do método "get by id", mas ainda sim não funciona.

Edit: Url do repositório github da API (coloquei direto para o arquivo CORS) https://github.com/daniloalvescosta/starWarsPlanets_Api/blob/master/src/main/java/com/br/PlanetWars/PlanetWars/CorsConfiguration.java

1 resposta

Oi Danilo,

Pode ser porque no seu controller você adicionou a anotação @CrossOrigin(origins = "http://localhost:8080") que permite requisições CORS apenas no prórprio endereço da API.

Remove essas anotações do controller e deixa apenas a classe CorsConfiguration no projeto.

Mova também a classe CorsConfiguration para algum subpacote. Ex: com.br.PlanetWars.PlanetWars.configuration