2009-08-20 20 views
5

Tengo una URL de una página remota desde dominio diferente que tengo que descargar, analizar y actualizar DOM de la página actual. He encontrado ejemplos de hacer esto usando nuevo ActiveXObject ("Msxml2.XMLHTTP"), pero eso está limitado a IE, supongo, y usando nuevo java.net.URL, pero no quiero usar Java . ¿Hay alguna alternativa?¿Cómo obtener el contenido de una página remota con JavaScript?

+0

¿tiene usted el control del otro dominio? –

+0

@Darko Z No, no lo hago – Vitaly

Respuesta

3

La misma política de dominio lo va a lograr.

1) Proxy a través de su servidor. navegador-> su servidor-> su servidor-> su servidor-> navegador.

2) Use flash o silverlight. El tercero debe darle acceso. El puente entre javascript y flash no es bueno para grandes cantidades de datos y hay errores. Silverlight no es omnipresente como flash ...

3) utilice una etiqueta. Esto realmente no es seguro ... Solo funciona si el contenido de terceros es javascript válido.

+0

¿Se correrá localmente un bookmarklet sujeto a las mismas restricciones? –

-1

El objeto XMLHTTPRequest es común para la mayoría de los navegadores modernos y es lo que impulsa las aplicaciones web AJAX.

+0

dijo en un dominio diferente ... –

+0

Si crean un estándar, es posible que www.datejs.com todavía pueda usar AJAX para esto ... aunque yo no lo recomendaría ... –

2

¿Qué hay sobre cargar un script de PHP a través de AJAX que hace file_get_contents()? Esto debería funcionar para diferentes dominios. Si entiendo correcto.

+0

Eso es básicamente lo que sugirió Steve Brewer. Pero preferiría evitar usar un proxy, si es posible. – Vitaly

1

Escribir un script del lado del servidor que recupere el contenido de la página es el camino a seguir. Puede usar el objeto XMLHttpRequest para hacer una llamada AJAX a esa secuencia de comandos, que simplemente mostrará todo html (?) Por usted.

Aún así, desaconsejo. No sé exactamente cómo confías mucho en el otro sitio, pero existe la misma política de origen por algún motivo. ¿Qué es exactamente lo que estás tratando de hacer? Por lo general, hay una solución.

+0

La misma política de origen es la forma segura de hacerlo. ¿Otro sitio tiene una API? –

+0

Google Finance API no proporciona una forma de obtener cotizaciones de acciones, sin embargo, como se menciona aquí http://stackoverflow.com/questions/527703/google-financial-api-how-get-stock-quotes hay una forma de obtener citas como esta: http://finance.google.com/finance/info? q = GOOG – Vitaly

+0

¿Está tratando de recuperar las cotizaciones de acciones de Google Finance? Ayuda a aclarar exactamente qué es lo que estás tratando de lograr :-) – JorenB

0

No creo que pueda hacer esto de acuerdo con las limitaciones de la misma política de origen. Dos se comunican entre dos dominios usando Iframes. También podemos usar el código JS pero ambos dominios necesitan tener un código de comunicación en ellos. El cuadro secundario puede contactar al cuadro de abuelos (ventana) pero no aquí.

Como te refieres a alguna otra url togeather.

La única manera es hacerlo utilizando el código del lado del servidor para acceder al contenido en el otro dominio.

0

sólo tiene que utilizar PHP:

<?php 
$url = "http://www.domaintoretrieve.com"; 

ob_start(); 
include_once($url); 

$html = ob_get_contents(); 
ob_end_clean(); 

?> 

$ HTML contiene toda la página para manipular según sea necesario.

Cuestiones relacionadas