Skip to content

Instantly share code, notes, and snippets.

@vmattos
Created August 7, 2014 22:04
Show Gist options
  • Save vmattos/5a076f291f0933e368df to your computer and use it in GitHub Desktop.
Save vmattos/5a076f291f0933e368df to your computer and use it in GitHub Desktop.
Ajax/REST - SOA

Ajax/REST - SOA

Para consumir os dados servidos pelo servidor usando Ajax, podemos usar o CORS (Cross-Origin Resource Sharing). Ele consiste de 2 headers, um na requisiçáo e um na resposta.

Setando header Access-Control-Allow-Origin com JAX-RS:

// Alteraramos o método buscaPagamento para usar um ResponseBuilder
// e setar o header

@GET
@Path("/{id}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response buscaPagamentoCors(@PathParam("id") Integer id) {
	Pagamento pagamento = repositorio.get(id);

    return Response
		.status(Response.Status.ACCEPTED)
		.entity(pagamento)
		.header("Access-Control-Allow-Origin", "*")
		.build();
}

Para consumir esses dados via JavaScript de forma simplificada, podemos usar uma biblioteca com o jQuery, que ja seta automaticamente o header Origin na requisiçáo:

$.ajax({
    url: 'http://localhost:8080/fj36-webservice/cors/1',
    
    success: function(dados) {
        console.log(dados);
    },
    
    // Opcional: Podemos setar que queremos buscar o json
    dataType: 'json'

})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment