简体   繁体   中英

How to fix CORS Cross Origin error in spring-boot?

I have written these webservice and I want to consume them with vue-view-resource but when I run my browser an error Cross Origin is detected and I can not progressed so I need help to correct the error Cross Origin at the level of spring boot.

@CrossOrigin(origins = "localhost:9090/user")
@RestController
@RequestMapping("/user")
public class UtilisateurController {

@Autowired
private IUtilisateur utilisateurRepository;

@GetMapping("/getAll")
public ResponseEntity findAll() {
    return ResponseEntity.ok(utilisateurRepository.findAll());
}

@GetMapping("/getById/{matricule}")
public ResponseEntity rechercheParId(@PathVariable(name="matricule") String matricule) {
    if(matricule==null) {
        return ResponseEntity.badRequest().body("Impossible de recuperer un utilisateur null");
    }
    Optional<Utilisateur> utilisateur = utilisateurRepository.findById(matricule);

    if(utilisateur == null) {
        return ResponseEntity.notFound().build();
    }
    return ResponseEntity.ok().body(utilisateur);
}

@PostMapping("/create")
public ResponseEntity creeUtilisateur(@RequestBody Utilisateur utilisateur) {
    if(utilisateur==null) {
        return ResponseEntity.badRequest().body("Impossible de recuperer un utilisateur null");
    }
    Utilisateur utilisateurCree = utilisateurRepository.save(utilisateur);
    return ResponseEntity.ok(utilisateurCree);
}

@DeleteMapping("/delete/{matricule}")
public ResponseEntity supprimerUtilisateur( @PathVariable(name="matricule") String matricule) {
    if(matricule == null) {
        return ResponseEntity.badRequest().body("Impossible de supprimer un utilisateur, matricule null");
    }
    Utilisateur utilisateur = utilisateurRepository.getOne(matricule);

    if(utilisateur == null) {
        return ResponseEntity.notFound().build();
    }
    utilisateurRepository.deleteById(utilisateur.getMatricule());

    return ResponseEntity.ok("Utilisateur supprimé avec succès!");
}

@PostMapping("/login")
public ResponseEntity login( @RequestParam(name="matricule") String matricule, @RequestParam(name = "password") String password) {
    if(StringUtils.isEmpty(matricule) || StringUtils.isEmpty(password)) {
        return ResponseEntity.badRequest().body("Veuilez renseigner votre login et votre mot de passe SVP");
    }
    return ResponseEntity.ok("Connexion reussi avec succès!");
}

}

picture

I believe your have to put the origin into the CrossOrigin not the target. Eg @CrossOrigin(origins = "http://localhost:8080")

Also, as the error message says, you have to specify a protocol scheme, eg http:// .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM