Ir para conteúdo

POWERED BY:

Arquivado

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

Miguel Trindade

[Resolvido] Enviar e Receber XML para um link externo com AJAX

Recommended Posts

Fala Pessoal. Tudo joia?

 

Eu sempre acompanhei o fórum e ja aprendi muita coisa com todos que postam / explicam. Mas, dessa vez eu nao consegui achar nenhuma solução para o que preciso.

 

Vou tentar explicar:

 

Eu preciso enviar um XML para um endereço externo do meu site(http://www.site_externo.com.br/index.php) via POST ou GET e esperar uma resposta dá pagina que tbm virá em XML. Depois disso preciso tratar os dados que vierem e então mostrar as informações pro usuário sem perder a página que estou.

 

Ja tentei fazer isso da seguinte forma:

 

Através do Jquery eu chamo uma página .php que contém um formulário. Nele eu coloco o XML que vou enviar e faço o submit com javascript. O problema é ao carregar a pagina .php, o Jquery ja mostrou o form pro usuario como "resposta" e em segundo a página que ele está é direcionado para o link que submeto no form(http://www.site_externo.com.br/index.php).

 

Por outro lado, ja tentei enviar via GET direto do Jquery (http://www.site_externo.com.br/index.php?xml=MEU_XML_AQUI) mas ele nao da acesso. Achu que por causa do http:// (nao tenho certeza)

 

Como posso fazer isso??

Alguém pode me dar uma luz???

Desde já agradeço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem acesso a essa pagina PHP?

 

pq nela você pode colocar uma resposta diretamente e só resgatar os valores via ajax!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Enviar e Receber XML para um link externo com AJAX

 

Normalmente, os browsers não se comunicam com sites externos, "domínios diferentes", via Ajax.

Acrescente o código, javascript, abaixo para verificar se por acaso não se trata realmente de erro de permissão ou "Acesso Restrito".

 

window.onerror = function (msg,url,l){alert("Há um erro nesta página.\n\nErro: "+msg+"\nURL: "+url+"\nLinha: "+l+"\n\nClick OK para continuar.\n\n"); return true;}

Uma opção para se obter dados de um site externo seria enviar os dados via ajax para uma página do seu site, que por sua vez, se encarregaria de comunicar por Socket com o site externo e retornar os dados via xml para a sua página.

 

Até.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Você pode alterar algo neste site externo?

 

2) Caso sim, Você pode alterar este site externo pra receber via JSON ao invés de XML?

 

3) Você pode alterar este site externo pra te devolver a resposta via JSON ao invés de XML?

 

Caso as respostas acima sejam SIM você poderá enviar seus dados normalmente via JSON e receber via JSON através de ajax+jquery que será um serviço muito fácil e bem parecido com qualquer requisição ajax.post normal.

 

( Se não sabe o que é json: json.org )

 

Caso a resposta seja não, você tem 2 opções:

 

1) fazer uma página php (ou qualque outra linguagem server-side) pra servir de intermediária entre seu javascript e a página externa (como a galera já falou aí acima, javascript não se comunica diretamente com outra página html externa).

 

2) Usar algum serviço externo (tipo o yahoo pipes) pra converter o XML da página externa em JSON pra poder ser trabalhado pelo javascript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado a todos pelas respostas. São de grande ajuda.

 

 

você tem acesso a essa pagina PHP?

 

pq nela você pode colocar uma resposta diretamente e só resgatar os valores via ajax!

Não consigo mudar nada na página. So enviar e receber o bendito XML.

 

 

Uma opção para se obter dados de um site externo seria enviar os dados via ajax para uma página do seu site, que por sua vez, se encarregaria de comunicar por Socket com o site externo e retornar os dados via xml para a sua página.

Eu consigo passar variaveis / parametros via Socket??

 

 

1) Você pode alterar algo neste site externo?

 

2) Caso sim, Você pode alterar este site externo pra receber via JSON ao invés de XML?

 

3) Você pode alterar este site externo pra te devolver a resposta via JSON ao invés de XML?

Infelizmente não consigo alterar nada lá Micox, mas gostei muito do Yahoo Pipes. Vou dar um estuda nele.

Sobre o que você disse "fazer uma página php (ou qualque outra linguagem server-side) pra servir de intermediária entre seu javascript e a página externa" eu pensei em usar uma página com frames / iframe e pegar a resposta que vier. Estou certo em pensar assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não dá pra trabalhar legal com iframes+javascript+novos_navegadores.

 

A melhor solução então será trabalhar com uma página intermediária usando sockets como o colega falou acima.

 

1) Sua página que irá mandar o conteúdo não irá mandar mais para o site externo mas sim pra sua própria página intermediária

 

2) esta página intermediária irá receber a solicitação, se conectar com o site externo e retornar o xml pra você

 

Dessa forma você poderá trabalahr com ajax.post normalmente como qualquer outro ajax.

 

 

(Se estiver usando PHP como linguagem server-side: pra que sua página intermediária consiga se comunicar com a página externa, passar e receber parametros, pesquise sobre a biblioteca CURL)

Compartilhar este post


Link para o post
Compartilhar em outros sites

(Se estiver usando PHP como linguagem server-side: pra que sua página intermediária consiga se comunicar com a página externa, passar e receber parametros, pesquise sobre a biblioteca CURL)

Micox...a principio funcionou realmente como eu queria. PERFEITO.

Gostei muito da forma que a biblioteca CURL trabalha. Não tinha o conhecimento dela. A usarei em outros projetos tbm.

 

Qlq outra dúvida eu posto aqui.

Muito obrigado a todos.

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.