Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2740 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Javascript] Load d'un fichier depuis URL ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Javascript] Load d'un fichier depuis URL ??

n°1889845
le_duc
PlaTyPuS
Posté le 30-05-2009 à 22:51:32  profilanswer
 

Hello!  :hello:  
 
J'ai un problème avec le code suivant... il fonctionne pas et je vois pas ce qui cloche!
 
Si qqn a une idée, thxxxx :)

Code :
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. //create the Cross-browser XMLHttpRequest object
  5. function getFile(pURL) {
  6. if (window.XMLHttpRequest) { // code for Mozilla, Safari, etc  
  7.  xmlhttp=new XMLHttpRequest();
  8.  xmlhttp.onreadystatechange=postFileReady;
  9.  xmlhttp.open("GET", pURL, true); // leave true for Gecko
  10.  xmlhttp.send(null);
  11. } else if (window.ActiveXObject) { //IE  
  12.  xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
  13.  if (xmlhttp) {
  14.   xmlhttp.onreadystatechange=postFileReady;
  15.   xmlhttp.open('GET', pURL, true);
  16.   xmlhttp.send();
  17.  }
  18. } else {
  19.  alert('Your browser does not support the remote scripting object.');
  20. }
  21. }
  22. // function to handle asynchronus call
  23. function postFileReady() {
  24. if (xmlhttp.readyState==4) {
  25.  if (xmlhttp.status==200) {
  26.   //loadResults(xmlhttp.responseText);
  27.   document.getElementById('theExample').innerHTML=xmlhttp.responseText;
  28.  }
  29. }
  30. }
  31. </script>
  32. </head>
  33. <body onload="getFile('http://www.rodsdot.com/ee/latin.htm');">
  34.   <div id="theExample">Loading...</div>
  35. </body>
  36. </html>


mood
Publicité
Posté le 30-05-2009 à 22:51:32  profilanswer
 

n°1889881
le_duc
PlaTyPuS
Posté le 31-05-2009 à 11:41:55  profilanswer
 

up...

n°1890009
SICKofitAL​L
misanthrope
Posté le 01-06-2009 à 00:26:29  profilanswer
 

Je me suis permis de refaire ton code :

Code :
  1. <html>
  2. <head>
  3.    <script type="text/javascript">
  4.  
  5.        // classe de creation de l'object XHR et d'appel GET
  6.        function XHR ()
  7.            {
  8.                this.xhr = null;
  9.  
  10.                // private
  11.                this._createXHR = function ()
  12.                    {
  13.                        if (window.XMLHttpRequest)
  14.                        {
  15.                            ptr.xhr = new XMLHttpRequest ();
  16.                        }
  17.                        else if (window.ActiveXObject) // IE
  18.                        {
  19.                            try { ptr.xhr = new ActiveXObject ("Msxml2.XMLHTTP" ); }
  20.                            catch (e) { ptr.xhr = new ActiveXObject ("Microsoft.XMLHTTP" ); }
  21.                        }
  22.  
  23.                        if (!ptr.xhr)
  24.                            throw "Pas de support Ajax !";    // erreur !
  25.  
  26.                        return true;
  27.                    }
  28.  
  29.                // private
  30.                this._exec = function (callback)
  31.                    {
  32.                        if (ptr.xhr.readyState == 4 && ptr.xhr.status == 200)
  33.                        {
  34.                            return callback (ptr.xhr);
  35.                        }
  36.                        return true;
  37.                    }
  38.  
  39.                // public
  40.                this.request = function (url, callback)
  41.                    {
  42.                        if (!ptr.xhr)
  43.                            return false;
  44.  
  45.                        ptr.xhr.onreadystatechange = function () { return ptr._exec (callback); };
  46.                        ptr.xhr.open ('GET', url, true);
  47.                        ptr.xhr.send (null);
  48.                        return true;
  49.                    }
  50.  
  51.                var ptr = this;
  52.                ptr._createXHR ();
  53.            }
  54.  
  55.  
  56.        function postFileReady (result)
  57.            {
  58.                document.getElementById ('theExample').innerHTML = result.responseText;
  59.                return true;
  60.            }
  61.  
  62.  
  63.        window.onload = function ()
  64.            {
  65.                var xmlhttp = new XHR ();
  66.                xmlhttp.request ("http://www.rodsdot.com/ee/latin.htm", postFileReady);
  67.                return true;
  68.            }
  69.    </script>
  70. </head>
  71. <body>
  72.    <div id="theExample">Loading...</div>
  73. </body>
  74. </html>

Message cité 1 fois
Message édité par SICKofitALL le 01-06-2009 à 00:35:31

---------------
We deserve everything that's coming...
n°1890057
le_duc
PlaTyPuS
Posté le 01-06-2009 à 11:39:17  profilanswer
 

SICKofitALL a écrit :

Je me suis permis de refaire ton code :

Code :
  1. <html>
  2. <head>
  3.    <script type="text/javascript">
  4.  
  5.        // classe de creation de l'object XHR et d'appel GET
  6.        function XHR ()
  7.            {
  8.                this.xhr = null;
  9.  
  10.                // private
  11.                this._createXHR = function ()
  12.                    {
  13.                        if (window.XMLHttpRequest)
  14.                        {
  15.                            ptr.xhr = new XMLHttpRequest ();
  16.                        }
  17.                        else if (window.ActiveXObject) // IE
  18.                        {
  19.                            try { ptr.xhr = new ActiveXObject ("Msxml2.XMLHTTP" ); }
  20.                            catch (e) { ptr.xhr = new ActiveXObject ("Microsoft.XMLHTTP" ); }
  21.                        }
  22.  
  23.                        if (!ptr.xhr)
  24.                            throw "Pas de support Ajax !";    // erreur !
  25.  
  26.                        return true;
  27.                    }
  28.  
  29.                // private
  30.                this._exec = function (callback)
  31.                    {
  32.                        if (ptr.xhr.readyState == 4 && ptr.xhr.status == 200)
  33.                        {
  34.                            return callback (ptr.xhr);
  35.                        }
  36.                        return true;
  37.                    }
  38.  
  39.                // public
  40.                this.request = function (url, callback)
  41.                    {
  42.                        if (!ptr.xhr)
  43.                            return false;
  44.  
  45.                        ptr.xhr.onreadystatechange = function () { return ptr._exec (callback); };
  46.                        ptr.xhr.open ('GET', url, true);
  47.                        ptr.xhr.send (null);
  48.                        return true;
  49.                    }
  50.  
  51.                var ptr = this;
  52.                ptr._createXHR ();
  53.            }
  54.  
  55.  
  56.        function postFileReady (result)
  57.            {
  58.                document.getElementById ('theExample').innerHTML = result.responseText;
  59.                return true;
  60.            }
  61.  
  62.  
  63.        window.onload = function ()
  64.            {
  65.                var xmlhttp = new XHR ();
  66.                xmlhttp.request ("http://www.rodsdot.com/ee/latin.htm", postFileReady);
  67.                return true;
  68.            }
  69.    </script>
  70. </head>
  71. <body>
  72.    <div id="theExample">Loading...</div>
  73. </body>
  74. </html>



 
 :love:  :jap:  
thx pour ce code!
 
Fonctionne nickel sous IE, mais ca donne rien sous Firefox  :sleep:  
 
une idée ptetre?

n°1890059
SICKofitAL​L
misanthrope
Posté le 01-06-2009 à 11:44:44  profilanswer
 

le_duc a écrit :


 
 :love:  :jap:  
thx pour ce code!
 
Fonctionne nickel sous IE, mais ca donne rien sous Firefox  :sleep:  
 
une idée ptetre?


ca fonctionne pas sous FF ? Je dirais que c'est que chez toi car je l'ai dev et testé que sous FF, et ca fonctionne très bien... chez moi :D
 
alors dans l'ordre :
1) tu as Firebug ? sinon il est temps de l'installer et de voir ce qui est retourné exactement.
2) l'url que tu appelles, remplaces "http://www.rodsdot.com/ee/latin.htm" par "/ee/latin.htm", histoire de voir qu'il ne s'agit pas d'une restriction qqconque (chez moi forcément je l'ai testé sur une pages qiu m'est accessible).


---------------
We deserve everything that's coming...
n°1890073
le_duc
PlaTyPuS
Posté le 01-06-2009 à 12:36:03  profilanswer
 

SICKofitALL a écrit :


ca fonctionne pas sous FF ? Je dirais que c'est que chez toi car je l'ai dev et testé que sous FF, et ca fonctionne très bien... chez moi :D
 
alors dans l'ordre :
1) tu as Firebug ? sinon il est temps de l'installer et de voir ce qui est retourné exactement.
2) l'url que tu appelles, remplaces "http://www.rodsdot.com/ee/latin.htm" par "/ee/latin.htm", histoire de voir qu'il ne s'agit pas d'une restriction qqconque (chez moi forcément je l'ai testé sur une pages qiu m'est accessible).


 
quand tu dis "une page qui m'est accessible", t'entends quoi par là??
 
Car le but du script est de s'exécuter localement et d'aller lire une pae web (sur un serveur web donc), pas sur la même machine/domaine. En espérant que c'est possible bien sûr :D
 
edit: Firebug m'a permis de constater que le test suivant n'est pas passé:
 
if (ptr.xhr.readyState == 4 && ptr.xhr.status == 200)
 
readyState est à 1, tandis que status est vide.... pas bon ca  :pt1cable:

Message cité 1 fois
Message édité par le_duc le 01-06-2009 à 12:42:11
n°1890084
SICKofitAL​L
misanthrope
Posté le 01-06-2009 à 13:24:36  profilanswer
 

le_duc a écrit :


 
quand tu dis "une page qui m'est accessible", t'entends quoi par là??
 
Car le but du script est de s'exécuter localement et d'aller lire une pae web (sur un serveur web donc), pas sur la même machine/domaine. En espérant que c'est possible bien sûr :D
 
edit: Firebug m'a permis de constater que le test suivant n'est pas passé:
 
if (ptr.xhr.readyState == 4 && ptr.xhr.status == 200)
 
readyState est à 1, tandis que status est vide.... pas bon ca  :pt1cable:


Je m'en doute qu'il s'agit de lire une page web :D
Par contre, lire le contenu d'un autre domaine ce n'est PAS possible (Same Origin Policy : https://developer.mozilla.org/en/Sa [...] vaScript). Pour celà il te faut passer par un script (en PHP par exemple) qui servirait de "proxy" : c'est ce script qui va lire la page demandée et renvoyer son contenu.
 
Tu peux vérifier la valeur de retour HTTP avec la propriété "status" qui à mon humble reste n'est pas 200 (200 = tt est ok).
Modifies ca dans le code :
 

Code :
  1. // ....
  2. this._exec = function (callback)
  3.    {
  4.        if (console)
  5.            console.log (ptr.xhr); // mate la doc de FireBug pour en savoir plus...
  6.  
  7.        if (ptr.xhr.readyState == 4 && ptr.xhr.status == 200)
  8.        {
  9.            return callback (ptr.xhr);
  10.        }
  11.        return true;
  12.    }
  13. // ....


Message édité par SICKofitALL le 01-06-2009 à 13:25:06

---------------
We deserve everything that's coming...
n°1890086
SICKofitAL​L
misanthrope
Posté le 01-06-2009 à 13:28:05  profilanswer
 

En fait ca te permetra surtout de voir que la requete est OK, mais qu'il retourne rien, comme s'il était bloqué ;)
 
Concernant le script proxy, ca traine à foisons sur le net, en voilà un : http://snipplr.com/view/8418/ajax-xss-proxy-script/


Message édité par SICKofitALL le 01-06-2009 à 13:29:09

---------------
We deserve everything that's coming...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Javascript] Load d'un fichier depuis URL ??

 

Sujets relatifs
[Resolu]Problème de mise en forme de Fichier .txt[javascript|jquery] affichage dynamique d'une image ds un div
Pb ecriture dans un fichier csvdéclencher le calcul d'un fichier excel avec VBA
[Résolu][Javascript]Boucle de test et définition de variable.erreur javascript
APACHE POI 3.5 - Lecture de fichier XLSX - InvalidFormatException ![javascript] variable dynamique ?
Est-il possible de modifier à la volée l'URL d'une HttpServletRequest?Dans USS transformer fichier format UNIX en format Windows
Plus de sujets relatifs à : [Javascript] Load d'un fichier depuis URL ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR