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 :

Chemin d'url pour la fonction XMLHttpRequest.open


Sujet :

AJAX

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Points : 125
    Points
    125
    Par défaut Chemin d'url pour la fonction XMLHttpRequest.open
    Bonjour,

    Tout nouveau débutant avec ajax, j'aurai besoin e votre aide.

    Quand j'utilise XMLHttpRequest.open("GET", url , true);
    Je n'arrive pas a faire ce que je veux avec la variable url si var url= "./xml/toto.xml" ça marche par contre si je place mon fichier toto.xml à la racine de mon ordinateur C:\ ça ne marche pas, j'aimerai idéalement le placer dans un dossier sur un reseau. Je n'arrive pas à trouver la bonne syntaxe.

    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    normal

    XMLHttpRequest dit XML Http Request
    il y a http alors il est gentil avec toi il accepte de déroger parfois mais il faut pas exagérer c'est fait pour HTTP
    (note qu'il en va de même avec XML mais là il est beaucoup plus cool)

    XMLHttpRequest a été crée pour qu'un client web (http/https donc) puisse depuis une page web (toujours http) faire une requête (request) en vu d'obtenir du xml (mais il accepte le texte)

    C'est cool car du coup depuis une page HTML tu peux invoquer (enfin la page) plein d'url.
    Mais, car il y a un mais, le monde du web est dangereux. la page n'a pas le droit d'invoquer n'importe quelle url.

    la première restriction et c'est valable pour toute les page (pas seulement XMLHttpRequest) il est ABSOLUMENT INTERDIT d'accéder à l'ordinateur du client. là du coup plus de fichier local.
    la deuxième restriction tu ne peux invoquer une url que si celle-ci l'autorise (voir CORS sur toute la toile tu trouveras des doc)


    Alors comment se fait-il que ça marche en partie.
    (ce serais moi je l'interdirait complètement mais bon je ne développe pas le navigateur)
    ça marche dans certaines conditions
    la page est elle-même chargé depuis le poste (elle n'est pas en http) l'url du chemin est conforme à la norme.

    dans ton cas le chemin relatif est conforme à la norme car le navigateur le préfixe avec lurl de la page.
    mais un navigateur est sensé fonctionner sur tout type d'OS et C:\ ça n'existe que sous windows
    si tu regarde comment est faite une url tu vois que le : sert à plusieurs choses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      foo://username:password@example.com:8042/over/there/index.dtb?type=animal;name=ferret#nose
      \ /   \________________/\_________/ \__/            \___/ \_/ \_____________________/ \__/
       |           |               |       |                |    |           |                |
       |       utilisateur        hôte    port              |    |        requête          fragment
       |    \_______________________________/ \_____________|____|/
    schéma                  |                         |     |    |
       |                 domaine                    chemin  |    |
       |                                                    |    |
       |            chemin                     peut être interprété comme un nom de fichier
       |   ___________|____________                              |
      / \ /                        \                             |
      urn:example:animal:ferrett:nose            peut être interprété comme une extension
    au début de l'url il y a le schema (protocole) qui est séparé du reste par : puis le host et le port sont aussi séparé par :

    ton url c:\mon\chemin\mon\fichier.ext va être interprétée en collant au diagramme ci-dessus
    c => le protocole
    vu que les : ne son pas suivit de // on regarde tout en bas et on voit que tout le reste est juste un chemin
    \mon\chemin\mon\fichier.ext => chemin

    là on comprends vite que le navigateur ne peut pas faire grand chose avec.

    la solution mettre la page sur un serveur est utiliser des chemins web (http)
    A+JYT

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Points : 125
    Points
    125
    Par défaut
    Merci pour cette explication très claire.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Points : 7
    Points
    7
    Par défaut url pour XMLHttpRequest.open
    Bonjour,

    Je cherche à lire un fichier JSON qui est sur un site web ou bien généré par un Arduino.
    Avec le code suivant je n'ai aucun problème à lire un fichier JSON qui est à la même racine que mon fichier HTML me cela ne fonctionne pas lorsque je rentre chemin url de type http://bidon.free.fr/meteo.json :

    Code : 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
     
     
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     
    <script type="text/javascript">
     
    function createXHR() 
    {
        var request = false;
            try {
                request = new ActiveXObject('Msxml2.XMLHTTP');
            }
            catch (err2) {
                try {
                    request = new ActiveXObject('Microsoft.XMLHTTP');
                }
                catch (err3) {
    		try {
    			request = new XMLHttpRequest();
    		}
    		catch (err1) 
    		{
    			request = false;
    		}
                }
            }
        return request;
    }
     
    function loadJSON(urlf) 
    {
    	var fichier=createXHR();
    	fichier.open("GET", urlf, true);
    	fichier.onreadystatechange=function() 
    	{
    		if (fichier.readyState == 4) 
    		{
    			if (fichier.status != 404) 
    			{
    				document.getElementById("zone").innerHTML = "Trouvé";
    				var data=eval("(" + fichier.responseText + ")");
    				document.getElementById("zone").innerHTML = "Température Extérieure : " + data.Temp_Ext + "<br>";
    			} 
    			else 
    			{
    				document.getElementById("zone").innerHTML = urlf + " Non trouvé";
    			}
    		}
    	}
    	fichier.send(null);
    }
     
    </script>
     
    <body bgcolor="#FFFFFF">
    <p><font size="+3">Test connexion JSON Arduino</font></p>
    <hr>
    <FORM name="ajax" method="POST" action="">
      <p>
        <INPUT type="BUTTON" value=" Cliquer pour afficher les données JSON "  ONCLICK="loadJSON('meteo.json')">
      </p>
    </FORM>
     
    <div id="zone"></div>
     
     
    <hr>
     
    </body>
     
    </html>
    Merci pour vôtre aide...

Discussions similaires

  1. Besoin d'aide sur les fonctions vba
    Par merveil014 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2014, 08h11
  2. NATURAL : Besoin d'aide sur une fonction
    Par Antichoc dans le forum Cobol
    Réponses: 2
    Dernier message: 19/07/2011, 17h00
  3. besoin d'aide sur les fonctions
    Par magic73 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 20/03/2008, 08h59
  4. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 17h40
  5. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00

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