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?