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

JavaScript Discussion :

XMLHttpRequest ouvrant un fichier présent sur un autre serveur


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut XMLHttpRequest ouvrant un fichier présent sur un autre serveur
    Salut à tous !

    Bon, je travail sur un système de script php exprotable pour les blogguers et les internautes novices. Le code à insérer se présente comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type="text/javascript" src="******************/vote.js"></script>
    vote.js est un script en ajax qui permet d'appeler une page php avec des paramêtre en post, et cela me retourne une valeur que j'affiche sur le poste client.

    Si je met le script client sur le même compte que vote.js ... tout marche à merveille, mais si je met le script client sur une compte différent ( le but cherché )... bah ca me renvoi une erreur :

    uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open
    Sachant que open permet d'ouvrir ma page php présente sur mon serveur.

    Si quelqu'un à une idée, ca serait super cool ... car je suis blazé ...

    Merci d'avance !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Oups ... j'viens de trouver un début de réponse sur le forum ;-)

    Permission refusée XMLHttprequest

    Je vais explorer ca de plus près... et j'espers que mon serveur le permet !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par http://developer.mozilla.org/fr/docs/AJAX:Premiers_pas
    Pour des raisons de sécurité, il n'est pas possible d'appeler des pages se situant sur un autre domaine. Veillez à utiliser le nom de domaine exact sur toutes vos pages ou vous obtiendrez une erreur 'permission denied' à l'appel d'open(). Une erreur courante est de charger le site via domaine.tld, mais d'essayer d'appeler des pages avec www.domain.tld.
    Existe-t-il une solution pour passer outre cette protection ?
    Le principe recherché est de permettre au membre de mon site d'ajouter un appel de mon script sur leurs site web, et ainsi de leur proposer divers services. Il doit bien avoir une méthode pour réaliser ce que je souhaite, car google adds fonctionne par l'implémentation d'un script js.

    Merci d'avance pour votre aide ;-)

    Edit : Je rappelle que mon problème est à la fois sur FF et sur IE ...

    Yo

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Google ADS c'est encore différent, il se sert du cache de ta page

    Oui, il existe une solution, c'est de "refaire" un call XHR coté serveur...

    En ASP .Net, par exemple :
    1) Tu ajoutes une référence à MSXML2 (Composants COM)
    2) Tu crée un page xhr.aspx
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim URL as String = Request("url")
    Dim PostData as String = Request("data")
    Dim Xhr as new MSXML2.XMMHTTP()
    Xhr.open ("POST", URL, false)
    Xhr.send(PostData)
    Response.OutPutStream.Position = 0
    Response.OutPutStream.Write(Xhr.responseBody)
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse Fremy

    J'aime bcp le "Oui, il existe une solution" dans ton message ^^ ... par contre, je comprend pas vraiment ton explication.

    Tu ajoutes une référence à MSXML2 (Composants COM)
    S'agit-il d'utiliser l'objet IXMLHTTPRequest ?

    Donc, je comprend qu'il faudrait intégrer cet objet dans mon code javascript... Cet objet étant un objet microsoft, il fonctionne sous firefox ?
    Tu crée un page xhr.aspx
    Moi je développe en php ... et "refaire" un call XHR coté serveur j'ai pas trouvé la solution dans la doc php ...

    Merci encore pour ton aide ...

    Si tu as des nouvelles réponses à m'apporter, je suis preneur

    Yo.

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Euh... Ajouter une référence à MSXML c'est pour ASPX (Alors en fait du fait un call XHR coté serveur, et donc sans protection )

    Sous PHP, c'est impossible... du moins de cette manière la
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Aggrrrr ... Si tu veux, en faite, j'ai trouvé une solution qui consiste à appeler ma page à l'aide d'une iframe invisible, et traiter ensuite l'information dans un code javascript... mais l'inconvénient, c'est que ca fait plus de code pour le membre, et c'est pas propre ... je comptait passer plein de paramêtre ...

    Si quelqu'un à une piste pour résoudre mon problème sachant que je développe en php ?

    Merci d'avance... tout est programmé ... c'est la seule chose qui bloque ... je suis blazé

    Yoann.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Bon, Je commence à être un peu désespéré...
    J'ai modifié mon code javascript appelé par le membre. Ce code créer une iframe à l'aide de document.create, et cette iframe ajoute le contenu de ma page php avec les paramêtre souhaités... Vu que je cherchais à tout prix à limiter le code du membre à un appel javascript, ca marche ;-) ... mais le problème c'est que internet explorer bloc la création de mon iframe et me met un message :

    Citation Envoyé par ie
    Pour vous aider à protéger votre ordinateur, Internet Explorer a restreint l'affichage du contenu actif de ce fichier, qui pourrait accéder à votre ordinateur.
    Une autre idée ? ^^

    Je pense que c'est surement coté serveur qu'il faut que je fasse qqchose... mais quoi... ? Je suis sur un serveur php en mutualisé...

    Merci d'avance pour votre aide ..

  9. #9
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par LeSkaMan
    Bon, Je commence à être un peu désespéré...
    J'ai modifié mon code javascript appelé par le membre. Ce code créer une iframe à l'aide de document.create, et cette iframe ajoute le contenu de ma page php avec les paramêtre souhaités... Vu que je cherchais à tout prix à limiter le code du membre à un appel javascript, ca marche ;-) ... mais le problème c'est que internet explorer bloc la création de mon iframe et me met un message :



    Une autre idée ? ^^

    Je pense que c'est surement coté serveur qu'il faut que je fasse qqchose... mais quoi... ? Je suis sur un serveur php en mutualisé...

    Merci d'avance pour votre aide ..
    Normalement, ca ne fait ca que parceque tu as testé ta page en local
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Je suis encore en cours, dans 20 min j'essai sur le net ;-) ... je rève pas trop... mais bon, si ca marche, je reviens ici illico t'en parler !

    Merci pour l'aide que tu m'apportes ;-)

    Yoann.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Effectivement, c'était bien parceque je l'executais en local... Je l'ai mis sur mon serveur, et j'ai plus ce problème là...
    Dans cette iframe, j'appel ma page php qui m'affiche un formulaire. Ce formulaire est envoyer grâce à ajax. Tout marche nikel sur firefox ... mais sur IE... problème
    Lorsque j'envoi mon formulaire, j'arrive à ouvrir mon fichier sur mon xhr, mais c'est au moment d'envoyer mes donnée via POST avec la fonction send que IE me retourne une erreur d'execution inconnue.... Merci IE ...

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Bon, l'erreur inconnu était un problème d'encodage de mes fichiers ... et c'est pas ie qui m'a aidé

    Alors voila, mon appli marche presque sous FF et IE 6 ... et là je viens d'ouvrir IE7 en standalone.. la dernière invention de microsoft...
    Avec IE7, on vous bloque tout ! Les popup, les alert en javascript, mon formulaire est considéré comme une "fenêtre publicitaire intenmpestive"... Alors que sous IE6 et FF2 pas de problème, pas d'alert d'ailleur ...

    Quand sous firefox, des popup sont blocké à l'arrivé du site, il est possible de les voir en un clique de souris ... sur IE7, il faut entrer l'adresse du site dans les paramètre du navigateur

    Bref... blazé, je suis blazé ...

    Que tombe l'empire microsoft !!!

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Bon, le IE7 que j'avais était en standalone, et à priori pas fiable ^^
    Allez, j'opte pour la création d'une iframe dynamiquement !

    Merci à tous pour votre aide !

    Yo.

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut
    est-ce que tu pourrais envoyer un exemple de code car j'ai le même problème et j'ai du mal à visualiser ce que tu fais.

    Merci

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Salut !

    Alors, le code que le membre doit mettre sur sa page est le suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/javascript"><!--
    membre_id = "14";
    //--></script>
     
    <script type="text/javascript" src="http://monsite.com/vote_client.js"></script>
    Et dans le code javascript appelé (vote_client.js) je fais simplement un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.write('<iframe id="maiframe" src="http://www.monsite.com/vote.php?id='+membre_id+'" NAME="vote" HEIGHT="50" frameborder="0" scrolling="no" ALLOWTRANSPARENCY="true" WIDTH="400">Désolé mais votre navigateur ne supporte pas les cadres locaux.</iframe>');
    et le tour est joué ;-)

    Bonne prog !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/10/2013, 21h57
  2. Réponses: 2
    Dernier message: 03/06/2012, 23h07
  3. Réponses: 5
    Dernier message: 25/05/2007, 15h20
  4. [FTP] Lister les fichiers sur un autre serveur
    Par lenoil dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2007, 11h07
  5. Comment lancer une fonction présente sur une autre page ?
    Par mappy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/12/2006, 14h44

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