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

Bibliothèques & Frameworks Discussion :

Cross Domain


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut Cross Domain
    Salut

    Je tente depuis ce matin de faire du Cross Domain avec Prototype, mais pas moyen d'y arriver. C'est plus pour faire du débug que pour une appli en production (pb de compatibilité de browser, les vieux ne supportent évidement pas cette fonctionnalité)

    Pour le cross domain :
    https://developer.mozilla.org/en/HTTP_access_control

    En gros, il suffit de rajouter un header dans votre réponse serveur pour autoriser les appels Ajax depuis un autre domaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PHP :
    header("Access-Control-Allow-Origin: http://domaine-from.com/");
    J'y arrive bien en utilisant le snippet donné en exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var invocation = new XMLHttpRequest();
            var url = 'http://www.szervices.fr/test/wrt/widget_version.php?v=0.1';
     
            function callOtherDomain(){
                if (invocation) {
                    invocation.open('GET', url, true);
                    invocation.onreadystatechange = newCodeHandler;
                    invocation.send();
                }
            }
    Mais avec prototype, niet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    new Ajax.Request("http://www.szervices.fr/test/wrt/widget_version.php?v=0.1" , {	
    		method:'get',
    		onSuccess: newCodeHandler,
    		onFailure: function(){
    			console.log('Epic Fail');
     
    		}
    	});
    Alors que ce code fonctionne si executé à partir du même domaine.

    Problème de paramétrage par défaut de Ajax.Request?

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Salut, j'ai copié collé tel que ton code exemple, le truc c'est que l'événement onreadystatechange intervient forcément (c'est un retour quel qu'il soit), par contre, avec prototype, tu obtiens une erreur, donc tu pars dans le onfailure.

    Maintenant peut être que l'exemple que tu donnes n'est pas celui que tu testes, et que du coup mon test ne vaut rien

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Par défaut
    Bah en fait, j'ai bien une réponse, mais vide.

    Je crois que ca viens de là :

    Alexey Feldgendler from Opera kindly alerted us to the possibility that certain non-browser environments (like Opera’s widget system) do not enforce the same-origin policy and as such may be subject to cross-domain script exploits.
    To combat this we’ve added an Ajax.Request#isSameOrigin method which returns true when a request is being made to the same domain, port, and protocol as the document.
    Furthermore, Prototype will no longer automatically evaulate JavaScript response bodies when this method returns false.
    et en regardant le code de Ajax.Request#isSameOrigin de plus près, c'est confirmé. Prototype n'evalue plus la réponse, même si elle est fournie par le serveur.

  4. #4
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    D'où vient cette citation ? (elle est intéressante)

Discussions similaires

  1. javascript et cross domain
    Par razebitum dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/08/2007, 19h12
  2. [PHP-JS] Cross domaine et PHP
    Par intelcore dans le forum Langage
    Réponses: 5
    Dernier message: 06/07/2007, 14h00
  3. faire du cross domain
    Par Gomoz dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 19/10/2006, 15h22
  4. [Ajax] Cross domain et access denied
    Par Dinaïz dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 22/03/2006, 22h29
  5. cross-domain iframe!
    Par bumasoft dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/11/2005, 10h37

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