J'essaie d'intégrer l'application angualar js avec la botte à ressort backend, dans laquelle je fais face à la redirection n'est pas autorisée pour une demande de contrôle en amont
Ceci est déployé sur openshift, j'ai configuré pour activer les cors en ajoutant quelques annotations dans la méthode du contrôleur, ce qui m'a aidé à résoudre l'en-tête: la demande n'a pas d'en-tête "Access-Control-Allow-Origin" dans la demande entrante: problème de stratégie CORS.
@CrossOrigin(allowedHeaders = "*", origins = "*", exposedHeaders =
"Access-Control-Allow-Origin", methods = {
RequestMethod.POST, RequestMethod.GET, RequestMethod.PUT,
RequestMethod.DELETE, RequestMethod.HEAD,
RequestMethod.OPTIONS, RequestMethod.PATCH, RequestMethod.TRACE })
@RestController
public class Controller {
@Autowired
Service botService;
@Autowired
Environment env;
@CrossOrigin()
@RequestMapping(value = "/jwtToken", method = {
RequestMethod.POST }, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<UnifiedService> botConntor(
@RequestBody UnifiedInput input, HttpServletRequest request) {
UnifiedBPMService output = botService.processBotRequest(input, request);
return new ResponseEntity<UnifiedService>(output, HttpStatus.OK);
}
L'erreur que j'obtiens dans l'application angular angulaire est:
L'accès à XMLHttpRequest sur 'http: /// chatbot/api/jwtToken' depuis l'origine 'http: //' a été bloqué par la stratégie CORS: la réponse à la demande de contrôle en amont ne passe pas la vérification du contrôle d'accès: la redirection n'est pas autorisée pour un contrôle en amont demande.
L'appel d'options a renvoyé la réponse ci-dessous:
Request URL: http://<domain>/chatbot/api/jwtToken
Request Method: OPTIONS
Status Code: 302 Found
Remote Address: 10.235.222.220:80
Referrer Policy: no-referrer-when-downgrade
Pour Spring Boot, vous devez intégrer un corsFilter à votre configuration de sécurité.
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList({YOUR_Origin or just a "*" for testing}));
configuration.setAllowedMethods(Arrays.asList("GET","POST"));
configuration.setAllowedHeaders(Arrays.asList({YOUR_ALLOWEDHEADERS}));
configuration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}