Javascript entre plusieurs domaines

erysoft Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
erysoft Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Ma question est simple. Je demande si quelqu'un sait enregistrer dans une variable JavaScript, ou une balise DIV identifié, une page d'un domaine différent avec l'instruction requete.open('GET', fichier, false), requete étant un objet XMLHttpRequest. J'utilise déjà cette fonction en travaillant dans le même domaine.

A vous lire.

ErySoft

Pour me dire que ceci n'est pas possible, autant s'abstenir de répondre !

4 réponses

gaerebut Messages postés 1017 Date d'inscription   Statut Membre Dernière intervention   171
 
Salut,

qu'entends-tu par "une page d'un domaine différent" ???
Je pense pouvoir t'aider mais je vois pas trop ce que tu veux faire.

A+

gaerebut
0
erysoft
 
Salut,

Un domaine à une adresse unique : ex (http://mon_site/).
J'ai d'autres adresses où je place des données : ex (http://banque_donnees/)

Si j'importe des fichiers de mon domaine primaire pour les incorporer à ma page, il n'y a aucun problème.
Par exemple (http://mon_site/donnees/texte_001.txt) pour (http://mon_site/index.html).

Mais si je fais appel au domaine (http://banque_donnees/texte_002.txt) ... c'est le silence radio.

Tu saisis la nuance de domaine ?

Pour l'instant, je travaille sur le même domaine, mais parfois, je dois appeler un fichier se trouvant dans un autre domaine, et cette opération est refusée.

Si tu as une idée, elle sera la bienvenue.

ErySoft
0
erysoft Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   5
 
Salut à .... il n'y a pas foule !

Je sais que la solution ne se trouve pas sur une page en première position sur Google, mais faîtes une effort.

De mon côté, je n'ai rien trouvé d'intéressant, mais je ne baisse pas les bras pour l'instant.

Je pense qu'il y a moyen de trouver avec VBScript.

A vous lire ...

ErySoft
0
N@th@ Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   12
 
Va voir là dessus : https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/245581-lxmlhttprequest-cross-domain
0
erysoft Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   5
 
Salut,

Je suis content de voir que je ne suis pas le seul entêté !
Je vais voir ce que cela donne, mais je tiens à te remercier pour l'info.

Ce que je trouve débile, c'est qu'il existe une multitudes de façons pour avoir le code source d'une page html. Alors que ce soit par une pompe à sites, la fonction "voir code source" de Firefox, ou une téléchargement http gérer par un programme ... on peut toujours avoir accès. Alors pourquoi js "sécurise" cette fonction pour se balader d'un domaine à l'autre.

Encore merci.

Je te tiens informé.

ErySoft
0
erysoft Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   5
 
Re,

La version Firefox 3.1 est nécessaire ... ou IE8 ! Sur le 3.07, cette fonction n'existe pas. Les versions IE supérieures demandent le SP2 ... ce qui revient à partir au boulot en laissant la porte de sa maison ouverte.
Quant aux autres (Opéra, Avant ..), je n'en sais strictement rien !

Pourtant cela me semblait acceptable.

Mais il reste la grosse bidouille ! On peut importer les images d'un autre domaine ... et on est pas obligé de mettre une image dans le fichier image.

SkyDrive acceptait l'attribution d'une url unique pour les fichiers stockés. Celle-ci était valable quelques mois, mais maintenant, sa validité est réduite à 24 heures ... d'après mes observations.

Avec Vista complètement pourri, les sites qui n'autorisent plus rien, il ne nous manque plus que le clavier qui va avec : 2 touches (Yes/No).

Salut

ErySoft
0
erysoft Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   5
 
Bonjour,

Comme je suis têtu, j'ai trouvé une solution.

Il suffit d'appeler un proxy en php, sur un site d'hébergement qui accepte le php.

Voici le code du fichier xy.php à placer sur le site d'hébergement :

<?php
$adresse = $_GET['adr'];
$session = curl_init($adresse);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($session);
header("Content-Type : text/xml");
curl_close($session);
$nom_fichier = 'adresse.txt';
$file = fopen($nom_fichier,'w');
fwrite($file,$adresse);
fclose($file);
echo $xml;
?>

Voici la partie Javascript de votre page qui peut donc recevoir le code html d'un Cross Domain en mode texte :

function eswd_charger_fichier(fichier,comment)
{
var requete = null;
if (comment == null) comment = false;
if (window.XMLHttpRequest) {requete = new XMLHttpRequest();}
else if (window.ActiveXObject){requete = new ActiveXObject("Microsoft.XMLHTTP");}
else return;
requete.open('GET', fichier, comment);
requete.send(null);
return requete.responseText;
}

Formulation de la demande :

var le_site = eswd_charger_fichier('xy.php?adr=' + 'http://www.lesite.index.html', false)

Conclusion :

Dans la variable le_site, vous avez tout le code de la page "Cross Domain" en texte, et non en objet. Pour savoir si la proxy fonctionne, il laissera sous la même racine un fichier adresse.txt correspondant à l'url demandée.

Voilà voilà !
0