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 :

Javascript : affiche les entêtes HTTP


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 22
    Par défaut Javascript : affiche les entêtes HTTP
    Bonjour,

    Je cherche à utiliser un script que j'ai trouvé dans Ajax à 200% paru chez o'reilly. Or ce script ne fonctionne pas, et je ne parviens pas à en trouver l'erreur.

    J'ai une page html qui fait appel à la fonction traiteReponse, en afficant msgAffichage dans un tableau.

    Voilà mon script :

    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
    var request;
    var urlFragment="http://localhost:80/";
     
    function getAllHeaders(url){
    httpRequest("GET",url,true);
    }
     
    //fonction de gestion de l'événement onreadystatechange de XMLHttpRequest
    function traiteReponse( ) {
    try{
    if(request.readyState == 4){
    if(request.status == 200){
    /* toutes les entêtes sont reçues sous la forme
    d'une chaine de caractéres */
    var headers = request.getAllResponseHeaders();
    var div = document.getElementById("msgAffichage");
    div.className="header";
    div.innerHTML="<pre>"+headers+"</pre>";
    } else {
    // request.status est 503 si l'appli est indisponible
    // 500 si appli rencontre un bug
    alert(request.status);
    alert("un probléme de communication est survenu entre " + "l'objet XMLHttpRequest et le programme côté serveur.");
    }
    }//fin de la boucle si
    } catch (err) {
    alert("Le serveur ne paraît pas" + 
    "dipsonible pour l'application. Veuillez"+
    " réessayer dans un instant. \nErreur : "+err.message);
    }
    }
    /* initialise un objet de requête qui a été préalablement construit */
    function initReq(reqType,url,bool){
    try{
    /* Spécifie la fonction qui va traiter le réponse HTTP */
    request.onreadystatechange=traiteReponse;
    request.open(reqType,url,bool);
    request.send(null);
    } catch (errv) {
    alert(
    "L'application ne parvient pas à contacter le serveur actuellement. " +
    "Veuillez réessayer dans quelques secondes.");
    }
    }
    /* Fonction d'encapsulation l'objet de requête.
    Paramétres :
    reqType : Le type de requête HTTP, comme GET ou POST.
    url : L'URL de programme côté serveur.
    asynch : Précise si l'envoi de la requête est asynchrone ou non. */
    function httpRequest(reqType,url,asynch){
    //Pour les navigateurs basés sur Mozilla
    if(window.XMLHttpRequest){
    request = new XMLHttpRequest();
    } else if (window.ActiveXObject){
    request=new ActiveXObject("Msxml2.XMLHTTP");
    if (! request ){
    request=new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    //la requête peut toujours être nulle s'il ne s'agit pas d'ActiveXObject
    //l'initialisation a abouti
    if(request){
    initReq(reqType,url,asynch);
    } else {
    alert("Votre navigateur ne permet pas l'utilisation "+
    "de toutes les focntionnalités de cette application !");
    } 
    }
    Si j'utilise mon script, je tombe sur le message d'alerte "L'application ne parvient pas à contacter le serveur actuellement. Veuillez réessayer dans quelques secondes." (l.40-41). Or, j'ai bien lancé easyphp qui utilise le port 80 de localhost... et je ne comprends pas pourquoi mon script ne fonctionne pas.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Sécurité ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 22
    Par défaut
    En effet, cela semble être un blocage de sécurité du navigateur Firefox.. car sous IE mon script fonctionne.

    Pourtant, dans les options de firefox, j'ai autorisé javascript à toutes les actions :
    Déplacer fenêtres, passer fenêtres en avant/arriére plan, d/activer/désactiver menu, cacher barre d'état et modifier barre état.

    Je vais voir sur les forums gecko si ils sont entendu parlé de ce probléme.

    @ ++
    Chodaboy www.easycomputer.fr

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

Discussions similaires

  1. [PHP 5.2] L'inclusion d'un URL affiche les entêtes HTTP
    Par lioudow dans le forum Langage
    Réponses: 1
    Dernier message: 17/06/2010, 16h02
  2. Réponses: 1
    Dernier message: 18/12/2007, 11h06
  3. Réponses: 16
    Dernier message: 19/02/2007, 16h25
  4. Réponses: 7
    Dernier message: 24/01/2007, 16h05
  5. [JTable] Ne pas afficher les entêtes de colonnes
    Par nicolas.pied dans le forum Composants
    Réponses: 2
    Dernier message: 27/01/2006, 11h22

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