Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Sem mensagem de retorno no callback requisição AJAX

Digamos que tenho esse cenário que a url do webservice é dessa forma:

localhost:xxxx/controle/validar?mesa=55555&pedido=XXXX&val=Q

$('.acao-finalizar').click(function () {
        $.ajax({
            url: 'http://localhost:xxxx/controle/validar',          
            data:{
                mesa: "55555",
                pedido:"XXXXX",   
                val:"Q"            
            },          
            sucess: function (resposta) {
                Materialize.toast(resposta, 2000);
            },
            error: function (erro) {                
                Materialize.toast(erro.responseText, 3000, 'red-text');

            }
        });
    });

Consigo a mensagem de callback mas estou em um cenário que a url é utilizado barras:

localhost:xxxx/controle/validar/55555/XXXXXX/Q

$('.acao-finalizar').click(function () {
        $.ajax({
            url: 'http://localhost:xxxx/controle/validar/55555/XXXXXX/Q',          

            sucess: function (resposta) {
                Materialize.toast(resposta, 2000);
            },
            error: function (erro) {                
                Materialize.toast(erro.responseText, 3000, 'red-text');

            }
        });
    });

Mas não consigo a mensagem do callback.

Como posso proceder nesse cenário?

10 respostas

Felipe, não consegui achar nenhum erro no seu código. Se você der um console.log(erro) no callback error o que aparece no console?

Tinha instalado uma extensão no firefox para não ocorrer o problema de CORS.

Quando executo o programa sem a extensão cai no console.log(erro):

Object { readyState: 0, getResponseHeader: getResponseHeader(), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(), overrideMimeType: overrideMimeType(), statusCode: statusCode(), abort: abort(), state: state(), always: always(), catch: catch(), 8 more… }

Agora com a extensão ativa não cai no console.log do erro e nem no console.log do sucess.

Aproveitei e coloquei alert no sucess e error mas também não é executado.

To achando que o código cai fora antes de passar pelo sucess ou error quando não ocorre o problema de CORS não sei por qual motivo.

Ops! Acabei de ver no seu código que está faltando a porta do servidor:

'http://localhost:xxxx/controle/validar'

Adiciona a porta e vê se é isso :-)

O rota que você está batendo na sua API é vendo em qual linguagem (Java, C#, JavaScript ....) para backdend?

Backend é java e ele retorna texto e não json.

URL que estou usando é essa: http://189.78.179.53:19111/controleEventos/webresources/eventos/validar/235746/aaaaaaaaa/Q

Quando passo a URL no navegador ele me retorna a mensagem.

Não sei se tem influência, mas já fiz testes sem sucesso colocando no ajax esses atributos:

 type: "GET",
            dataType: "text",
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",

Dependendo como foi feito o servidor, faz diferença sim :-)

Esse servidor que você está usando é o curso que te deu ou você que está fazendo ele?

Foi feito por outro aluno e estava tentando realizando o retorno da mensagem utilizando os conhecimentos ajax que peguei nos cursos.

Vc teria alguma sugestão em relação a esse problema? :)

solução!

Acho que agora foi, fiz conforme esse exemplo:

$.ajax({
 url : "xml.xml",
 dataType : "xml",
 success : function(xml){
        $(xml).find('item').each(function(){
            var titulo = $(this).find('title').text();
            console.log(titulo);
        });
    }
});

Obrigado pela ajuda!

Como é texto então está retornando XML.

Muito bom man. Parabéns :-)