Você deve criar uma página server-side (JSP, ASP ou PHP) que busque a URL para você e então você pode fazer a requisição AJAX para uma página em seu domínio. Um exeplo usando JSP e JSTL (tag library) seria assim:
<%@page contentType="text/xml"
%><%@page pageEncoding="UTF-8"
%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%><c:import url="${param.url}"></c:import>
É isso mesmo. apenas 4 linhas de código, que facilmente poderiam virar 3. Quem conhce JSP sabe do que eu estou falando.
Para o JSTL funcionar, você precisa ter a biblioteca JSTL no diretorio lib de sua aplicação ou no diretório common/lib do Tomcat (não saberia dizer ao certo o diretório correto para outros containers).
Agora, você deve repara que estou fechando (%>) cada TAG na linha posterior. Isso foi uma dica que aprendi para tirar as linhas em branco que o Tomcat coloca nas páginas quando você insere uma TAG JSP. Isso é muito útil para quando você vai fazer um request de um documento XML. O Firefox só aceita documentos XML que começam na primeira linha do documento.
Como usar?
Supondo que você salvou a sua página JSP como ajax.jsp, no método que faz a requisição você vai usar o URL:
ajax.jsp?url=URL_REAL_QUE_VOCÊ_DESEJA
por exemplo:
ajax.jsp?url=http://www.google.com
Espero que esta postagem seja útil para vocês.
3 comentários:
mt obrigado! solução simples e eficaz
Não consegui...Qndo tentei chamar http://www.google.com.br deu o seguinte erro:
Erro no processamento de XML: not well-formed
Posição: http://localhost:8080/Ged/pages/ajax.jsp
Número da linha 3, Coluna 99:window.gbar={};(function(){var b=window.gbar,f,h;b.qs=function(a){var c=window.encodeURIComponent&&(document.forms[0].q||"").value;if(c)a.href=a.href.replace(/([?&])q=[^&]*|$/,function(i,g){return(g||"&")+"q="+encodeURIComponent(c)})};function j(a,c){a.visibility=h?"hidden":"visible";a.left=c+"px"}b.tg=function(a){a=a||window.event;var c=0,i,g=window.navExtra,d=document.getElementById("gbi"),e=a.target||a.srcElement;a.cancelBubble=true;if(!f){f=document.createElement(Array.every||window.createPopup?"iframe":"div");f.frameBorder="0";f.src="#";d.parentNode.appendChild(f).id="gbs";if(g)for(i in g)d.insertBefore(g[i],d.firstChild).className="gb2";document.onclick=b.close}if(e.className!="gb3")e=e.parentNode;do c+=e.offsetLeft;while(e=e.offsetParent);j(d.style,c);f.style.width=d.offsetWidth+"px";f.style.height=d.offsetHeight+"px";j(f.style,c);h=!h};b.close=function(a){h&&b.tg(a)}})();
(...tem mais coisas)
Rômulo,
desculpe a imensa demora. O exemplo citado está servindo um XML e não uma página HTML. Para você servir uma página HTML, mude seu contentType.
O firefox é exigente com o formato do XML que ele exibe.
Postar um comentário