IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] requête AJAX sur un autre domaine et variables POST


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [AJAX] requête AJAX sur un autre domaine et variables POST
    Bonjour,

    Je séche sur ce truc depuis quelques jours... Aussi je me permet de poser la question ici.

    Je souhaite intégrer dans un site situé sur le serveur A des requêtes Ajax vers des scripts hébergés sur le serveur B, avec des domaines différents... Normalement, un browser sérieux interdit cela...

    Pour le moment, j'ai pensé à ça :

    une fonction Javascript :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    /* ------------------------------------------------------------------------------------------------------------
     
    	ProxyLoadXML(url, addData)
     
    	loads an XML document from the given url and returns its reference
     
    	(object XMLDocument)
     
    	Actually, this function performs like LoadXML, but url is reached by the
     
    	meaning of a PHP 'proxy' (proxy.php), to allow cross sites access.
     
    	addData stands for passing extra parameters (a string with parameters
     
    	separated by semi-colons)
     
    	if addData is set (aka length > 0), each parameter POST-transmitted this way :
     
    	param0 = ...1st parameter...
     
    	param1 = ...2nd parameter...
     
    	...
     
    ---------------------------------------------------------------------------------------------------------------- */
     
     
     
    function ProxyLoadXML(url, addData) {
     
    	var xhr = CreateAjax();
     
    	var postVars = 'uri='+url;
     
    	// traitement des paramètres aditionnels
     
    	if(addData.length) {
     
    		var reg=new RegExp("[;]+", "g");
     
    		var params = new Array;
     
    		params = addData.split(reg);
     
    		for (var i = 0; i < params.length; i++) {
     
    			postVars += '&param' + i + '=' + params[i];
     
    		}
     
    	}
     
    	xhr.open("POST", 'proxy.php?'+urlend() , false);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.setRequestHeader("Content-length", postVars.length);
    	xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    	xhr.setRequestHeader('Accept', 'text/javascript, text/html, text/plain, application/xml, text/xml, */*');
    	xhr.onreadystatechange=function() {
    		if (xmlhttp.readyState == 4)  {
    			/* 4 : état "complete" */
    			if (xmlhttp.status != 200) {
    				// 200 : code HTTP pour OK
    				// Traitement de la réponse. Ici on affiche la réponse dans une boîte de dialogue.
    				alert('Le serveur a renvoyé une erreur.');
    			}
    		}
    	}
     
    	xhr.send(postVars); 
     
    	return xhr.responseXML;
     
    }

    En fait, cette fonction envoit la requête à un script php situé sur le serveur A (proxy.php) qui va juste lire le fichier sur le serveur B:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?php
     
     
    header("content-type: text/plain");
     
    // Je récupére l'uri du script à utiliser sur l'autre serveur
     
    $url = $_POST['uri'];
     
     
    // j'ouvre le script en lecture
     
    $handle = fopen($url, "r");
     
     
     
    // si tout va bene, je renvoit le résultat
     
    if ($handle) {
     
        while (!feof($handle)) {
     
            $buffer = fgets($handle, 4096);
     
            echo $buffer;
     
        }
     
        fclose($handle);
     
    }
     
     
     
    ?>

    Ca fonctionne, mais comme un gros malin que je suis, je me rend compte que les paramètres passés en POST avec cette méthode restent coincés dans proxy.php !!! Impossible de les retrouver dans le script php sur le serveur B, évidemment... Cela dit, c'est déjà pas mal de pouvoir requêter Ajax, même sans les variables POST

    Merci pour toute idée, elle sera la bienvenue, croyez moi !
    Et merci aussi de votre indulgence pour ce premier post sur ce forum.

    François.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Toutes mes confuses
    Je me répond à moi-même après un peu de réflexion.

    J'aime pas trop faire ça, mais je me demande si je ne vais pas faire comme ça :

    javascript -> envoi requête à proxy.php avec les params en POST
    proxy.php -> lecture du fichier avec params dans l'url sur le serveur B

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/11/2017, 13h15
  2. [AJAX] requête AJAX et fonction sur le callback
    Par grafistolage dans le forum AJAX
    Réponses: 3
    Dernier message: 29/02/2012, 12h23
  3. Ajax + Script PHP sur un autre serveur
    Par ganjaaw dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/01/2009, 09h35
  4. Réponses: 7
    Dernier message: 19/03/2008, 17h07
  5. Appel d'une fonction dans une iframe sur un autre domaine
    Par morikann dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/06/2007, 19h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo