4 Réponses :
Ajoutez @CrossOrigin (value = "*") à votre classe de contrôleur. Vous pouvez remplacer * par n'importe quelle URL particulière au cas où vous n'autoriser que cette origine.
@CrossOrigin(origins = "http://localhost")
@GetMapping("/rooms/")
public Object rooms() {
// your implementation
}
You can do in this way.
Mettez à jour addCorsMappings comme ci-dessous, cela pourrait fonctionner
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/rooms/**")
.addResourceLocations("classpath:/rooms/")
.setCachePeriod(3600)
.resourceChain(true)
.addResolver(new PathResourceResolver());
}
@Override
public void addCorsMappings(final CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:8080")
.allowedMethods("POST", "GET")
//.allowedHeaders("header1", "header2", "header3")
//.exposedHeaders("header1", "header2")
.allowCredentials(true).maxAge(3600);
}
}
https://www.viator.com/orion /nova/public/mmblite/styles-53929dcb.css
J'ai rencontré le même problème en fait, mais j'ai trouvé la cause principale et une solution.
Votre requête a très probablement été mise en cache par un intermédiaire: équilibreur de charge, CDN ou serveur HTTP de mise en cache devant votre application en tant que requête non CORS ordinaire. Ensuite, vous avez envoyé la requête avec Origine: , mais l'intermédiaire vous a renvoyé la même réponse mise en cache car du point de vue du cache, les réponses par défaut sont identifiées par / chemin + < code> METHOD + Host: -en-tête qui étaient les mêmes. Pour indiquer aux caches que la requête avec Origin: et la requête normale (sans Origin: doivent être mises en cache en tant qu'entrées indépendantes dans tout cache, nous avons besoin de Vary: Origin < / code> en-tête dans les deux réponses. Cela a été corrigé / implémenté dans Spring 5.2.x (dans mon cas, c'était Spring 5.1.9), dans votre cas c'était 5.0.9 (en tant que dépendance de Spring Boot 2.0.5.). Une fois que j'ai mis à niveau vers Spring 5.2.0, tout a été corrigé une fois que les caches sur l'intermédiaire ont expiré. Je recommande de mettre à niveau au-delà de la version 5.2.6 (car il y a eu d'autres changements dans la gestion CORS, ce qui est agréable à avoir).
voici la ligne (qui a fait la différence) qu'ils (Pivotal) ont engagé dans Spring: https://github.com/spring-projects/spring-framework/commit/d27b5d0ab6e8b91a77e272ad57ae83c7d81d810b#r36264428
et leur description de bogue: https://github.com/spring- projects / spring-framework / issues / 22273
Quel est le code d'état HTTP de la réponse?