Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo Villa

JSonp

Recommended Posts

Boa tarde, galera!

Estou com dificuldade em saber como retornar os dados de um JSONP.

No caso ele esta retornando uma lista:

Xxxxxx (Xxxx)

Xxxxxx2 (Xxxx2)

Xxxxxx3 (Xxxx3)

Xxxxxx4 (Xxxx4)

Xxxxxx5 (Xxxx5)

 

Mas preciso separar linha por linha.

 

Aguardo resposta...

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, mas está formatado em jSON ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

William ele me retorna desta forma:

GUARUJA (XSAO)

GUARULHOS (GRU)

GUARAPUAVA (CAC)

GUARATINGUETA ()

GUARATUBA (JOI)

JABOATAO DOS GUARARAPES (REC)

JAGUARIAIVA ()

JAGUARIUNA (CPQ)

 

E preciso separar linha por linha, mas o problema está em descobrir como retornar estes dados uma vez que o callback dele não funciona...

 

A idéia é pegar esta lista de itens e colocar em um autocomplete do JQuery...

Estou tentando assim, ele retorna os dados mas até agora não consegui descobrir para onde ele joga esses dados para que eu possa trata-los da forma que eu quiser...

$('#origem, #destino').keyup(function(){
   if(this.value.length > 2){
       $.ajax({
           url: "http://www.Xxxxxx.com.br/Yyyyy/Zzzzzzz.aspx?q="+this.value+"&LojaChave=1524578",
           dataType: "jsonp"
       });
   }
{);

Compartilhar este post


Link para o post
Compartilhar em outros sites

"ele" quem?

 

já tentou um split pela quebra de linha ? o caracter \n ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que não consigo o retorno para dar um SPLIT...

Já tentei success: function(data){}, jsonpCallback: "Xxxx" e nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, então você está requisitando uma URL que não faz parte do teu domínio.

Eu te indico fazer um proxy com php, e então o teu js lê esse proxy. Assim você não terá problemas com cross domain.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então William tive problemas as acessar via AJAX com JSON e agora com JSONP funcionou tanto é que estou visualizando os dados normalmente, só preciso saber como pegar este retorno para que eu possa tratá-lo...

 

Com JSON (ERRO):

Apresentou este erro: XMLHttpRequest cannot load http://www.Xxxx.com.br/Yyyyy/Zzzzz.aspx?q=RIO%20DE%20JANE&LojaChave=1245785492.'>http://www.Xxxx.com.br/Yyyyy/Zzzzz.aspx?q=RIO%20DE%20JANE&LojaChave=1245785492. Origin http://www.Xxxx.com is not allowed by Access-Control-Allow-Origin.

 

Agora com JSONP, retorna o que preciso:

GUARUJA (XSAO)

GUARULHOS (GRU)

GUARAPUAVA (CAC)

GUARATINGUETA ()

GUARATUBA (JOI)

JABOATAO DOS GUARARAPES (REC)

JAGUARIAIVA ()

JAGUARIUNA (CPQ)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok!

 

mas então cadê o seu success ? tipo.. tá difícil de te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei de tudo success: function(data){}, jsonpCallback: "Xxxx" e nada retorna.

Com esses parâmetros ou sem eles dá na mesma...

 

$('#origem, #destino').keyup(function(){
   if(this.value.length > 2){
       $.ajax({
           url: "http://www.Xxxx.com.br/Yyyyy/Zzzzz.aspx?q="+this.value+"&LojaChave=12354684",
           dataType: "jsonp",
           jsonpCallback: 'callback123',
           success: function(data, textStatus) {
               alert('success...');
           },
           error: function(xhr, ajaxOptions, thrownError) {
               alert('failed....');
           }
       });
   }
});

 

Ainda não tentei desta forma...

$.ajax({
   type: "GET",
   url: 'http://jsonip.appspot.com/?callback=getip',
   dataType: "jsonp",            
   success: function getip(json) {
       alert("sucess");
   }
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dudesigner,

 

Dei uma olhada no teu código e não encontrei nenhum problema. Inclusive fiz um teste com ele passando apenas uma outra URL e funcionou. Veja!

 

Se sua dúvida for apenas sobre como trabalhar com os dados que você recebe do json então sugiro fazer o seguinte:

Rode seu código no Google Chrome com o item Ferramentas Do Desenvolvedor habilitada e com a guia Console selecionada (é o F12 no teclado). Aí no teu código, no método success, roda o comando console.log(data). O bom de rodar no Chrome é que ele monta uma árvore das informações retornadas pelo json e aí é muito mais fácil de você identificar o retorno das informações e como trabalhar com elas.

 

Acessa esse link e roda ele conforme expliquei acima.

Abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berkowitz, primeiramente obrigado pela ajuda, mas o seu retorno para o meu tem uma diferença.

O seu retorna assim: {"BuscaEnderecoResult":[{"Bairro":"Centro","Cep":0,"Cidade":"São Paulo","Estado":"SP","LogradouroAbreviado":"R Três de Dezembro"}]}

 

Já o meu assim: (somente os dados nada de Array, nem nada...)

GUARUJA (XSAO)

GUARULHOS (GRU)

GUARAPUAVA (CAC)

GUARATINGUETA ()

GUARATUBA (JOI)

JABOATAO DOS GUARARAPES (REC)

JAGUARIAIVA ()

JAGUARIUNA (CPQ)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

 

Se seu retorno é exatamente este, então no caso você não está retornando dados de um JSONP. Seu dataType é text e não JSONP.

No caso você teria de fazer um proxy como o William Bruno sugeriu para continuar com o text, ou alterar o formato de seu retorno para JSON ou JSONP.

 

Este parametro também pode ser removido, pois no caso não está fazendo nada:

 

jsonpCallback: 'callback123',

Compartilhar este post


Link para o post
Compartilhar em outros sites

brunocampos_!

Pelo jeito não vou ter como escapar do PROXY citado pelo Willian mesmo, pois se tido o dataType: 'jsonp' ele não retorna os dados.

Caso alguém tenha algum modelo deste PROXY me envie, por favor.

 

Obrigado pela ajuda de todos...

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.