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 :

Objet XMLHttpRequest()


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut Objet XMLHttpRequest()
    Bonjour,

    je débute dans le JAVASCRIPT. J'en suis arrivé à l'étude de l'objet XMLHttpRequest.

    Comment puis je tester ce script ? avec quel URL ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var xhr = new XMLHttpRequest();
    xhr.open('HEAD', 'http://xxxxxxxx.com/', true);
    xhr.send(null);
    alert(xhr.getResponseHeader('Content-type'));

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    AJAX sert à communiquer avec le serveur, donc il faut coder la partie serveur également. Si c'est juste à des fins d'apprentissage et de démo, tu peux tester avec une API ouverte sur le net. Il y en a une liste ici : http://www.programmableweb.com/apis/directory

    En voici une ouverte qui sert justement à ces fins de démo : https://jsonplaceholder.typicode.com/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var root = 'http://jsonplaceholder.typicode.com';
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function(){
       if(xhr.readyState === 4){
           onLoad(xhr.responseText);
       }
    };
    xhr.open("GET", root+"/posts", true);
    xhr.send();
     
    function onLoad(response){
       console.log(response);
    }
    Aussi je te conseille de te renseigner sur l'API fetch. Elle est assez récente et pas supportée partout, mais bien plus facile à utiliser que ce XMLHttpRequest sorti d'une autre époque.
    https://developer.mozilla.org/fr/docs/Web/API/Fetch_API

  3. #3
    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
    J'ajouterais un petit détail à la réponse de SylvainPV
    Attention à l'url que tu ouvre. pour des tests je te conseille d'ourvir une url sur le même serveur que ta page (celle qui contient ce code).
    Si tu ouvre une url d'un autre serveur tu peux être confronté à des règles de sécurité qui t'interdiront l'accès.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function(){
       if(xhr.readyState === 4){
           alert(xhr.getResponseHeader('Content-type')); 
       }
    };
    xhr.open('HEAD', 'http://xxxxxxxx.com/', true);
    xhr.send(null);
    A+JYT

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut HttpRequest
    Bonjour,

    A force de recherche j'ai trouvé un serveur de test http://httpbin.org.

    SylvainPv

    Effectivement, c'est juste pour de l'apprentissage. Je débute dans JAVASCRIPT. J'irai voir une fois l'apprentissage terminé, l'API que tu cites.

    Sekaijin

    J'ai effectivement été confronté à une règle de sécurité notamment CORS. J'ai ajouté un setRequestHeader( 'Access-Control-Allow-Origin', '*'), pour contourner cette règle. Est ce bien ou pas ?

    Pour finir, j'ai en tête un projet de domotique. Les différentes recherches sur le net m'ont amenées vers JQUERY, PROTOTYPE puis vers ANGULARJS, tout en survolant la technologie AJAX. Au fur et à mesure de mes lectures, j'ai compris que je devais passer par l'apprentissage de JAVASCRIPT.
    C'est pourquoi, le sujet de ces messages sur HttpRequest.

    En tout cas, merci pour vos réponses

  5. #5
    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
    Citation Envoyé par CharleLéo Voir le message
    Bonjour,
    Sekaijin

    J'ai effectivement été confronté à une règle de sécurité notamment CORS. J'ai ajouté un setRequestHeader( 'Access-Control-Allow-Origin', '*'), pour contourner cette règle. Est ce bien ou pas ?
    Certain ne serons pas d'accord avec moi. pour moi c'est MAL.
    Mais je reconnais que tout le monde ne maitrise pas son serveur.

    Je tends toujours vers la situation suivante

    le client ne connait que le serveur de sa page. (celui qui lui a servi la page en cours)
    le client adresse toutes les requêtes xhr link script src et img src à son serveur uniquement.

    si le serveur possède la ressource il la fourni
    s'il ne la possède pas il sert de proxy vers la ressource (proxy contrôlé par liste blanche).

    ainsi je suis sûr à 100% de maitriser les ressources qui sont servies au client. je suis sur de ne pas avoir de problème de CORS.

    c'est un peu radical, ça demande de maitriser son serveur, et d'être sur d'avoir la capacité de faire passer par le serveur le flux des ressources externe.
    (pour les videos par exemple cela peut poser des problème)

    en fonction du contrat d'hébergement on peut être amené à réviser cette approche. Mais si on cherche à la mettre en place par défaut de façon systématique, lorsque pour une raison ou un autre on doit y déroger on se pose obligatoirement les questions de sécurité qui vont avec.

    Alors que si on ouvre tout au quatre vents, généralement le développement se fait sans problème et le jour où on doit sécuriser le truc on se casse la tête.

    A+JYT

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Points : 118
    Points
    118
    Par défaut
    Merci pour ces explications, je suis novice mais j'estime que tu as raison.

    cordialement

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

Discussions similaires

  1. [AJAX] les constructeurs de l'objet xmlHttpRequest
    Par inter_amine dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/12/2006, 21h06
  2. [AJAX] Objets XMLHttpRequest <-> Sql
    Par kij dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 05/11/2006, 12h41
  3. [AJAX] documentation de l'objet XMLHttpRequest
    Par linkin_khalid dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/10/2006, 17h29
  4. l'objet XMLHTTPRequest
    Par rosros dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/03/2006, 12h58
  5. Objets XMLHTTPRequest
    Par alain31tl dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/12/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