Comment obtenir le contenu d'une page distante avec JavaScript?

J'ai une URL d'une page distante d'un domaine différent que je dois télécharger, analyser et mettre à jour les DOM de la page actuelle. J'ai trouvé des exemples de ce fait en utilisant le nouveau ActiveXObject ("Msxml2.XMLHTTP") , mais cela se limite à IE, je suppose, et à l'utilisation de java.net.URL , mais je ne veux pas utiliser Java. Y at-il des alternatives?

La même politique de domaine vous apportera.

1) Proxy via votre serveur. Navigateur-> votre serveur-> leur serveur-> votre serveur-> navigateur.

2) Utilisez flash ou silverlight. La troisième partie doit vous donner accès. Le pont entre javascript et Flash n'est pas génial pour de grandes quantités de données et il y a des bugs. Silverlight n'est pas omniprésent comme le flash …

3) utiliser une étiquette. Ce n'est vraiment pas sûr … Fonctionne uniquement si le contenu de tiers est un javascript valide.

Qu'en est-il de charger un script PHP via AJAX qui contient file_get_contents() ? Cela devrait fonctionner pour différents domaines. Si je comprends bien.

L'écriture d'un script côté serveur qui permettra de retrouver le contenu de la page pour vous est le chemin à parcourir. Vous pouvez utiliser l'objet XMLHttpRequest pour effectuer un appel AJAX sur ce script, qui mettra tout à fait en ligne tous les html (?) Pour vous.

Pourtant, je le déconseille. Je ne sais pas exactement combien vous faites confiance à l'autre site, mais la même politique d'origine existe pour une raison. Qu'est-ce que vous essayez de faire exactement? Habituellement, il y a une solution de contournement.

Je ne pense pas que vous pouvez le faire en fonction des contraintes de la même politique d'origine. Deux communiquent entre deux domaines à l'aide d'Iframes, nous pouvons également utiliser le code JS, mais les deux domaines doivent avoir leur code de communication. Le cadre enfant peut contacter le cadre grand-père (fenêtre) mais pas ici.

Puisque vous faites référence à une autre URL, tous ensemble.

La seule façon est de le faire en utilisant votre code côté serveur pour accéder au contenu sur l'autre domaine.

Utilisez simplement PHP:

 <?php $url = "http://www.domaintoretrieve.com"; ob_start(); include_once( $url ); $html = ob_get_contents(); ob_end_clean(); ?> 

$ Html contient toute la page à manipuler au besoin.

L'objet XMLHTTPRequest est commun à la plupart des navigateurs modernes et est ce qui gère les applications Web AJAX.