Ajax crossdomain flXHR [Résolu]

Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
Bonjour tout le monde :)

Voilà quelques temps que j'essaye de faire fonctionner un plugin prototype qui permet de faire des requêtes ajax sur un serveur B via un serveur A.

J'ai donc fait des recherches et trouvé : flXHR
Cependant son utilisation m'échape un peu je trouve rien de clair même dans leur tuto... (http://flxhr.flensed.com/code/tests/flxhr-7b.html)
ou même leur doc (http://flxhr.flensed.com/documentation.php#constructor)

Qqun aurait il une autre solution plus fournie ? ou alors une explication du pq mes requêtes ne partent pas ...?
Je copierais mon code ce soir (je l'ai pas sur moi ^_^)

Merziiiii


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

8 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
Bonjour,
si on parle de la même chose
( échanges de données avec AJAX inter domaines ),
ça ne se passe pas si mal, même si
c'est exclusif FireFox ( il faut espérer
que les autres y viennent )
un exemple tout simple :

sur un site "A" :
( en synchrone et pas avec tous les navigateurs,
pour le test uniquement )
<html>

<script>
var xml = new XMLHttpRequest();
xml.open( "get", "http://url du site b/ajax.php", false);
xml.send("");
alert(xml.responseText);
</script>

</html>

sur le site "B" :
<?php header("Access-Control-Allow-Origin: *");
echo Date('l j F Y'); ?>

quand à l'adapter au contexte mis en exemple
( prototype et le reste ! ) :
Cordialement [mon Site] [M'écrire] Bul
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Comme prévu voici la source...
<head>
<script type="text/javascript" src="./prototype.js"></script>
<script type="text/javascript" src="./prototype.flXHRproxy.js"></script>
<script type="text/javascript" src="./flXHR.js"></script>
<script type="text/javascript" src="./checkplayer.js"></script>
<script type="text/javascript" src="./swfobject.js"></script>
<script type="text/javascript" src="./flensed.js"></script>
<script type="text/javascript" src="./js.js"></script>
<script language="Javascript" type="text/javascript">
Ajax.flXHRproxy.registerOptions("http://myDediboxIp",{instancePooling:true,autoUpdatePlayer:true,xmlResponseText:false,loadPolicyURL:"http://myDediboxIp/crossdomain.xml"});
</script>
</head>



,








et la fonction RequeteAjax qui est dans js.js

function RequeteAjax(oObjectRequest,sUrl,sMethod,sContainer){
var sObject= Object.toJSON(oObjectRequest);
new Ajax.Request(sUrl, {
method: 'post',
onSuccess: function(transport){
if(transport.responseText!=-1){
var response = transport.responseText;
if(sContainer!=''){
document.getElementById(sContainer).innerHTML=response;


}
}
},
onFailure: function(){
alert('Something went wrong...');
},
on404: function(){
alert('cannot find');
},
encoding: 'UTF-8',
parameters: {response: sObject}
});
}

à cette adresse il y a ceci : http://myDediboxIp/crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>


</cross-domain-policy>


Je vois vraiment pas ce qui l'empêche de la faire :/

Autre info... quand je clique sur le bouton, le dom change ...
Un noeud comme celui ci se rajoute a mon body

<object id="flXHR_swf_1" class="flXHRhideSwf" height="1" width="1" type="application/x-shockwave-flash" name="flXHR_swf_1" data="file:///C:/wamp/www/clientJS/flXHR.swf">



Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Impossible de faire fonctionner ce bazar j'ai donc opter pour la solution avec du Curl (cf lib PHP)!
j'envoie une requete ajax du serveur A au serveur A. Elle arrive a un pseudo dispatcher, vérifie quelques règles et balance une requête vers le serveur B.
Voilà !


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Donc c'est faisable en utilisant FF... Pas jojo tout ça :(
Du coup mon ptit script getContent.php assure pour tous les browser par contre il faut faire tourner apache sur le client avec l'estension curl...
C'est toujours mieux que pas possible!

Heureusement que tu es là et que tu en connais un rayon! Une fois de plus je te remercie :)


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
aujourd'hui seul FireFox permet
cela avec ajax , je crois.
il faut donc faire "autrement",
le langage serveur est une voie.

reste à espérer que tous les navigateurs
viendront à cet ajax multi-domaines.
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Je pensais que flXHR le faisait pour tout browser mais je n'ai pas réussit a faire fonctionner le bouzin >_<
Quelles sont les autres voies possibles ?


Il vaut mieux poser une question et passer pour bête que le rester toute sa vie  Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
>>flXHR le faisait
en javascript à priori, donc exclusif FF
>>autres voies possibles ?
"la plupart" des langages doivent permettre