Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Cargar url externa con AJAX

Estas en el tema de Cargar url externa con AJAX en el foro de Frameworks JS en Foros del Web. Buenas a todos. Estoy empezando con temas de ajax y me ha surgido la siguiente duda: Leyendo tutoriales que hay por internet sobre AJAX ya ...
  #1 (permalink)  
Antiguo 02/02/2009, 06:00
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 10 meses
Puntos: 0
Cargar url externa con AJAX

Buenas a todos.

Estoy empezando con temas de ajax y me ha surgido la siguiente duda:

Leyendo tutoriales que hay por internet sobre AJAX ya me ha quedado claro como cargar una pagina en un div, pero mi pregunta es como cargar una pagina que sea externa a ti...

Es decir como cargo por ejemplo www.google.com en un div de mi pagina personal.

¿Es posible? ¿Qué tengo que hacer?

Gracias
  #2 (permalink)  
Antiguo 02/02/2009, 11:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Cargar url externa con AJAX

Hola dablin,

Es posible pero necesitas lo que se conoce como un proxy, esto es un archivo en tu server (en el lenguaje servidor que uses) que sea el encargado de ir y obtener la pagina por ti.

Directamente con AJAX no es posible ya que las restricciones de seguridad solamente te dejan trabajar sobre el mismo dominio / puerto.

Saludos
  #3 (permalink)  
Antiguo 02/02/2009, 11:52
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 10 meses
Puntos: 0
ok seguire buscando

Sabes de algun sitio que te expliquen como hacerlo o mas o menos te den nociones para hacerme una ideita.

Gracias
  #4 (permalink)  
Antiguo 02/02/2009, 12:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Cargar url externa con AJAX

Consultalo mejor en el foro del lenguaje en el servidor que ocupes, ya que no es un tema ya de AJAX.

Saludos
  #5 (permalink)  
Antiguo 02/02/2009, 14:39
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Cargar url externa con AJAX

Acabo de ver tu pregunta y nunca lo había probado pero creo que a mi me funcionó



Utilicé 2 archivos:
-Un HTML llamado insertarPagina.html
-Un PHP llamado datosInsertarPagina.php

Se podría crear otro únicamente para el JavaScript pero por cuestiones de rapidez y de prueba lo hice así:

insertarPagina.html:

Código HTML:
<html >
<head>
<script>
function fAjax()
{ 
	var xmlhttp=false; 
	try 
	{ 
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}

function insertarPagina(pagina){	
	var ajax=fAjax();
	var ventanaSel=pagina;
	ajax.open("POST","datosInsertarPagina.php",true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");			
	ajax.send("ventana="+ventanaSel);
	ajax.onreadystatechange = function() 
	{	
		if (ajax.readyState == 1) document.getElementById("respuesta").innerHTML="Cargando, por favor espere...";
		else if (ajax.readyState == 4) document.getElementById("respuesta").innerHTML=ajax.responseText;		
	}	
}

</script>
<title>Ejemplo</title>
</head>
<body>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td><form name="form1" method="post" action="">
      <input name="insertar" type="button" id="insertar" value="Ir a Google" onClick="insertarPagina('http://www.google.co.ve');">
      <input type="button" name="Submit" value="Ir a Yahoo" onClick="insertarPagina('http://es.yahoo.com/');">
    </form>
      </td>
  </tr>
  <tr>
    <td height="374"><div id="respuesta"><b>Aqu&iacute; va la p&aacute;gina Web que se insertar&aacute;</b> </div></td>
  </tr>
</table>
</body>
</html> 

Código PHP:
$ventana=$_POST["ventana"];
readfile("$ventana"); 

PD: Solo lo probé con FIREFOX..
  #6 (permalink)  
Antiguo 02/02/2009, 14:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Cargar url externa con AJAX

Ese código PHP no te funcionara si no tienes activado allow_url_fopen en tu php.ini, por otro lado presenta un grabe riesgo de seguridad ya que no haces ninguna limpieza en tu readfile() por lo que fácilmente puedes especificar cualquier archivo de tu S.O. para ser leido.

Saludos
  #7 (permalink)  
Antiguo 02/02/2009, 14:56
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Cargar url externa con AJAX

Como dije anteriormente, simplemente probé y funcionó, eso quiere decir que sí se puede, pero si quiere ya establecer políticas de seguridad OK mejor aún..

Aparte, recuerda lo que dice, está comenzando a explorar AJAX...


Pero OK... a tu orden

Última edición por jodlinh; 02/02/2009 a las 14:58 Razón: Corregir
  #8 (permalink)  
Antiguo 03/02/2009, 10:20
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Cargar url externa con AJAX

Gracias por tu aporte jodlinh intentare probarlo aunque tengo que cambiar algunas cosillas que yo estoy programando con servlet....

Aunque si tu dices que eso no esta bien GatorV jeje ya me quedo en duda


Un saludo.

Última edición por dablin; 03/02/2009 a las 10:50
  #9 (permalink)  
Antiguo 03/02/2009, 11:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Cargar url externa con AJAX

No es que no este "bien" pero ese código como esta queda abierto a muchos ataques aparte de que no te va a servir en todos los servidores, ya que depende de la directiva allow_url_fopen, que no siempre esta activa.

Lo mejor es primero limpiar el URL que se desea cargar, asegurarnos que es un URL, y no una dirección local, y por último hacer un request HTTP usando cURL o fsockopen.

Saludos
  #10 (permalink)  
Antiguo 12/02/2009, 08:27
 
Fecha de Ingreso: noviembre-2005
Mensajes: 222
Antigüedad: 19 años, 1 mes
Puntos: 2
Respuesta: Cargar url externa con AJAX

y como lo hace google adsense para recuperar un código de otro site?

es decir, yo me pongo el javascript de google adsense y ellos rescatan de su site el XML que tengo correspondido a mi nombre y me lo publican en la web
__________________
"Prefiero callar como un tonto, que hablar para confirmarlo"
Espectacular Portal en crecimiento: Artículos http://www.blorgia.com
  #11 (permalink)  
Antiguo 12/02/2009, 13:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Cargar url externa con AJAX

Hola jovendigital,

Google no usa AJAX, lo que hacen es cargar un JS desde su sitio pero no es AJAX.

Saludos
  #12 (permalink)  
Antiguo 11/03/2009, 14:06
 
Fecha de Ingreso: diciembre-2003
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
Respuesta: Cargar url externa con AJAX

He apreendido algo muy interesante en este post, gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:28.