Problema com No 'Access-Control-Allow-Origin' header is present on the requested resource
3 respostas
jeffersonm
Estou desenvolvendo um aplicativo com Ionic que vai acessar um backend remoto mas que por hora está na minha máquina. Ao tentar acessar o serviço(rest / json) de login dá o seguinte erro no browser:
No Access-Control-Allow-Origin`’ header is present on the requested resource.
Meu aplicativo é em html e AngularJS e meu backend é Java com Tomcat rodando local na porta 8080.
Coloca o código do seu serviço REST pra gente ver.
jeffersonm
importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;importjavax.persistence.EntityManager;importjavax.persistence.EntityManagerFactory;importjavax.persistence.Query;importjavax.persistence.TypedQuery;importjavax.ws.rs.GET;importjavax.ws.rs.POST;importjavax.ws.rs.Path;importjavax.ws.rs.Produces;importjavax.ws.rs.core.MediaType;importjavax.ws.rs.core.Response;importjavax.ws.rs.core.Response.Status;importorg.apache.cxf.rs.security.cors.CrossOriginResourceSharing;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;@Path("/login")publicclassLoginService{Loggerlogger=LoggerFactory.getLogger(LoginService.class);EntityManagerFactoryentityManagerFactory;publicLoginService(EntityManagerFactoryentityManagerFactory){this.entityManagerFactory=entityManagerFactory;}//construtor defaultpublicLoginService(){}@CrossOriginResourceSharing(allowAllOrigins=true)@POST@Path("/getLogin")@Produces({MediaType.APPLICATION_JSON,MediaType.TEXT_PLAIN})publicResponselogin(UsuarioFilterusuario)throwsNoSuchAlgorithmException{Usuariou=newUsuario();Stringpwd=getPasswordHash(usuario.getSenha());try{EntityManagerentityManager=entityManagerFactory.createEntityManager();Queryq=entityManager.createQuery("select u from Usuario u where u.login = :login and u.password = :password").setParameter("login",usuario.getUsuario()).setParameter("password",pwd);u=(Usuario)q.getSingleResult();//return Response.status(Status.OK).header("Access-Control-Allow-Headers, origin, content-type, accept, authorization, token, tokenFB, idFB", "*").build();returnResponse.status(Status.OK).entity(usuario).header("Access-Control-Allow-Origin","*").header("Access-Control-Allow-Headers","origin, content-type, accept").header("Access-Control-Allow-Credentials","true").header("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, OPTIONS, HEAD").header("Access-Control-Max-Age","1209600").build();}catch(Exceptione){e.printStackTrace();returnResponse.status(Status.BAD_REQUEST).entity("Usuário não encontrado").header("Access-Control-Allow-Origin","*").build();}}