Ir para conteúdo

Arquivado

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

ExtremsX

Exibindo o conteudo de uma pagina HTML de outro servidor

Recommended Posts

Estou tentando exibir o conteudo HTML de um pagna qualquer dentro de um textarea.

Aqui o que ja consegui, daqui pra frente não sei o que alterar.

Alguem pode me dar uma uz do que pode ser? O que posso fazer? Como fazer?

 

<HTML>
    <head>
        <script>
            var request = false;
            try {
                request = new XMLHttpRequest();
            } catch (trymicrosoft) {
                try {
                    request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (othermicrosoft) {
                    try {
                        request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (failed) {
                        request = false;
                    }
                }
            }

            if (!request)
                alert("Error initializing XMLHttpRequest!");



            function getCustomerInfo() {

                var url = "http://www.google.com.br/index.html";

                request.open("GET", url, true);
                request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                request.onreadystatechange = updatePage;
                request.send(null);
            }


            function updatePage() {
                if (request.readyState == 4) {
                    //if (request.status == 200) {

                    document.getElementById("Texto").value = request.responseText;

                    //} else
                    //    alert("status is " + request.status);
                }
            }
        </script>
    </head>
    <body>
        <input type="button" value="Click Aqui" size="14" name="botao" onClick="getCustomerInfo();" />
        <textarea id="Texto" cols=2000 rows=1000></textarea>
    </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ajax não aceita pegar conteudo externo, muitos browsers travam a aplicação acusando erro pois isto seria falha de segurança. Recomendo usar PHP(ou outra linguagem server) combinado com AJAX Imagem Postada

 

Atenciosamente Silverfox(Guilherme Nascimento)

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso que eu quero, eu quero obter a pagina em HTML e enviar para o servidor PHP processalas, e não posso fazer o contrario. Se os navegadores travam, então da pra fazer, mas como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar a função http://php.net/manual/en/function.fsockopen.php

 

Crie um arquivo chamado por exemplo google.php :

<?php
$fp = fsockopen('www.google.com.br', 80, $errno, $errstr, 30);
if (!$fp) {
    echo '$errstr ($errno)<br />'.chr(10);
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.google.com.br\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 256);
    }
    fclose($fp);
}
?>

e depois chame ele via AJAX, obseversão o seu ajax está mau estruturado, ele está enviando um setRequestHeader no metodo GET, geralmente usamos o setRequestHeader no metodo POST:

function XHR() { 
	try {
		return new XMLHttpRequest();
	}catch(e) { 
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		}catch(ee) { 
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			}catch(eee) { } 
		} 
	}
	return null;
}

function getCustomerInfo(){
var xhr = XHR();
xhr.open("GET", "google.php", true);
xhr.onreadystatechange = function(){
	if(xhr.readyState == 4) {
		if(xhr.status == 200) {
			 document.getElementById("Texto").value = xhr.responseText;
		} else {
			document.getElementById("Texto").value = "Erro: "+xhr.responseText;
		}
	}
}
xhr.send(null);
}
}

 

<input type="button" value="Click Aqui" size="14" name="botao" onclick="getCustomerInfo();" />
<textarea id="Texto" cols=2000 rows=1000></textarea>

Espero que lhe ajude, não cheguei a testar mas qualquer problema é só avisar.

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.