Como Consumir um webservice obter o retorno

galera, sou iniciante em programação. estou tentando consumir um webservice porém estou totalmente perdido. alguém poderia me dar um norte?
meu webservice está retornando isso e eu preciso obter o valor error.
{“message”:“false”,“error”:true}
abaixo tem um código

<html>

<head>

<title></title>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

</head>

<body>

<form>

<input id="go" type="submit" value="Diga ola ao REST" onclick="testeServidor()" />

</form>

<script type="text/javascript">



function testeServidor(){
	var resultado;
      $.ajax({
			type: "POST",
            url: "127.0.0.1:8080/Financeiro/testeWebservice.rule?sys=FIN",
            dataType:"json",
			data: {
                
            }, 
			error: function() {
				alert('Houve um problema de comunicacao');
			}
          }).done(function(dados) {
			
				
				
				alert(data.error);
		

			});
}



</script>

</body>

</html>

Há uma incoerência nessa tua afirmação. Iniciante em programação não sai tentando consumir web service. Ou é iniciante e está pulando etapas, ou não é iniciante.

É um web service REST ou SOAP? Qual o tipo de retorno deste web service?

Pelo retorno, suponho que seja REST.
Você já sabe JSON? Se não, sugiro dar uma olhada

Olá @cleitonti

O parametro do seu done chama dados, mas você esta fazendo data.error, troque o data por dados, ou troque o parametro para data

1 curtida

não entendi muito bem.
o retorno que eu estou esperando do meu json é isso…

{“message”:“false”,“error”:true}

A função done recebe uma outra função que recebe um objeto chamado dados como parâmetro, esse dados é o retorno do json, mas perceba que no corpo dessa função você tenta acessar a variável error de dentro de data, mas a variável correta é dados

continua sem funcionar :confused:

fiz umas mudanças porém no console do navegador está retornando o seguinte erro…
Access to XMLHttpRequest at ‘http://127.0.0.1:8049/Financeiro/testeWebservice.rule?sys=FIN’ from origin ‘null’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

abaixo código desenvolvido…

<html>

<head>

<title></title>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

</head>

<body>

<form>

<input id="go" type="button" value="Diga ola ao REST"/>

</form>

<script type="text/javascript">

$(document).ready(function() {

$('#go').click(function()

{

$.ajax({

url: "http://localhost:8049/Financeiro/testeWebservice.rule?sys=FIN",

dataType: 'json'

}).done(function(data) {

alert(data.message);

});

})

});

</script>

</body>

</html>

Na sua API backend você tem que habilitar o CORS para que o frontend consiga realizar as requisições.

galera, fiz mais algumas alterações. porém sempre está retornando undefined
sendo que eu preciso obter apenas a message
{“message”:“false”,“error”:true}

<html>

<head>

<title></title>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

</head>

<body>

<form >

<input id="go"  type="submit" value="Diga ola ao REST" onclick="testeServidor()" />
<input type="hidden" name="sys" value="FIN">
</form>

<script type="text/javascript">



function testeServidor(){
	var resultado;
      $.ajax({
			type: "POST",
            url: "127.0.0.1:8080/Financeiro/testeWebservice.rule?",
            dataType:"json",
			data: {
                
            }, 
			error: function(dados) {
				alert(dados.message);
			}
          }).done(function(dados) {
			
				
				
				alert(data.dados);
		

			});
}



</script>

</body>

</html>

é uma aplicação java?
caso sim vc precisa configurar o CORS no tomcat…

tomcat/conf > web.xml e adiciona isso…

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>


e depois reinicia o serviço do tomcat.

agora funcionou!!
obrigado.