Boa noite, estou tentando realizar uma chamada a um webservice más está retornando o erro abaixo;
Requisição cross-origin bloqueada: A política de mesma origem (Same Origin Policy) impede a leitura do recurso remoto em http://localhost:8484/testeImpressao/impressao/. (Motivo: o cabeçalho CORS ‘Access-Control-Allow-Origin’ não está presente).
Segue o código que estou utilizando.
Servidor WebService
@Path("testeWS")
public class ApplicationCommandResource {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("/teste")
@Consumes(MediaType.APPLICATION_JSON)
public Response impressao( @QueryParam("nome") String stringJson) {
JSONObject jsonObject = new JSONObject();
Integer tam = 0;
jsonObject.put(tam.toString(), "teste 1");
tam += 1;
jsonObject.put(tam.toString(), "teste 2");
tam += 1;
jsonObject.put(tam.toString(), "teste 3");
return Response
.status(200)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization")
.header("Access-Control-Allow-Credentials", "true")
.header("Access-Control-Allow-Methods", "POST")
.entity(jsonObject.toString())
.build();
}`
CLiente WebService
$.ajax({
type: "POST",
url: "http://localhost:8484/testeWS/teste/" ,
data: "{'0':'1','1':'teste','2':'1','3':'asw'}",
dataType: "json",
headers: { 'Content-Type': 'application/json' ,
'X-Requested-With': 'XMLHttpRequest',
'Access-Control-Allow-Origin': '*' ,
'Access-Control-Allow-Headers':'origin, content-type, accept, authorization'
},
success: function(data){
alert("saida:" + data[3]);
},beforeSend: function(){
$("body").addClass("loading");
},
complete: function(){
$("body").removeClass("loading");
},
error: function (xhr, status, error) {
}
});