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 :

[AJAX] error 206 Partial Content 1.66s


Sujet :

AJAX

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 850
    Par défaut [AJAX] error 206 Partial Content 1.66s
    Bonjour,

    voici mon code pour faire mes requête AJAX :
    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
     
    // creation d'une classe
    function ObjAjaxEx(){
     
    	// propriétés/méthodes de l'objet
    	this.methode = "GET"
    	this.url = null
    	this.dataToSend = null
    	this.callBackFuncRecieveRequest = null
    	this.startTime = null
     
    	// variables locales
    	var xhr = null
     
     
    	// creation d'une methode
    	this.run = function() { 
     
    		if(window.XMLHttpRequest){
    			xhr = new XMLHttpRequest()
    			xhr.onreadystatechange = recieveRequest
    			xhr.open(this.methode, this.url, true)
    			xhr.send(this.dataToSend)
    		} else if(window.ActiveXObject){
    			try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP")
    			} catch (e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP")
    			}
     
    			if(xhr) {
    				xhr.onreadystatechange = recieveRequest
    				xhr.open(this.methode, this.url, true)
    				xhr.send(this.dataToSend)
    			}
    		} else {
    			alert("Votre Navigateur Internet ne supporte pas XMLHttpRequest")
    		}
     
    		this.startTime = new Date().getTime()
    	}
     
    	function recieveRequest(){
    		if(xhr){
    			if(xhr.readyState == 4){
    				if(xhr.status == 200) {
    					eval(xhr.responseText)
    					this.callBackFuncRecieveRequest(this)
    				}
    			}
    		}
    	}
     
    }
     
    function myCallBackFunction(obj_ObjAjaxEx){
    	alert("requete reçue" + obj_ObjAjaxEx.startTime)
    }
     
     
    var myObj = null
    // lancement du programme
    function startScript(){
     
     
    	//for(i=0; i<10; i++){
    		myObj = new ObjAjaxEx()
    		myObj.url = "http://www.ietf.org/rfc/rfc768.txt"
    		myObj.callBackFuncRecieveRequest = myCallBackFunction
    		myObj.run()
    	//}
     
    }
    => je lance la fonction startScript avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="startScript()">
    j'ai l'erreur : 206 Partial Content 1.66s
    => de quoi peut venir le probleme ?

    merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par boboss123 Voir le message
    => de quoi peut venir le probleme ?
    du fait que la page que tu appelles ne fait pas partie du même domaine que ta page à toi (Same Origin Policy) ?

    Sinon, faire un appel Ajax sur le onload du body m'a toujours laissé perplexe

    A+

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 850
    Par défaut
    ok merci le probleme venait bien de ça.
    Pour tester vos script ajax en local, vous utilisez quoi ?
    Par contre j'ai toujour un problème la fonction myCallBackFunction() n'est pas appelée => ça bloque à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.callBackFuncRecieveRequest(this)


    Pourquoi ça te laisse perplexe d'utiliser onload ? pour afficher les infos a l'ouverture de la page web, je suis bien obligé de faire comme ça, non ?

  4. #4
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    ce serait pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.callBackFuncReceiveRequest(this)
    EDIT: A oui non autant pour moi. C'est juste une erreur en Anglais. Aucun rapport avec le code

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    Par contre j'ai toujour un problème la fonction myCallBackFunction() n'est pas appelée
    J'ai un gros doute sur la manière dont tu définis tout ça.
    L'Objet c'est bien à condition de ne pas rendre les choses plus compliquées qu'elles ne sont
    Là, non seulement je comprends pas où tu veux en venir, mais on dirait bien un serpent qui se mord la queue

    Bref, as-tu essayé avec un script Ajax tristement classique ?
    Je ne pense pas que tu aurais le problème (généré par un simple alert() du responseText on dirait ce qui est un comble).

    Mais ça dépend aussi de la ligne précédente : comme tu fais un eval(), tout dépend du contenu du responseText ....
    Citation Envoyé par boboss123 Voir le message
    Pourquoi ça te laisse perplexe d'utiliser onload ? pour afficher les infos a l'ouverture de la page web, je suis bien obligé de faire comme ça, non ?
    Une méthode beaucoup plus triviale consiste à générer ce contenu lors de la génération de la page elle-même

    A+

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 850
    Par défaut
    Dans mon alert(), je ne veux pas afficher le contenu du fichier chargé mais la valeur de la variable startTime de l'objet.
    Je fais ça pour apprendre à créer des objets et donc j'essaie un cas pratique (ce genre de code existe déja dans JQuery par exemple)


    J'ai trouvé le problème.

    dans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.callBackFuncRecieveRequest(this)
    je pensais que this me ferait référence à l'objet ObjAjaxEx or il fait référence à xhr (???).
    => donc au debut du code de ma classe, je fais un : myObj = this
    puis je remplace la ligne qui pose problème par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myObj.callBackFuncRecieveRequest(myObj)
    => on est obligé de créer cette variable tampon (il n'y a pas une methode plus clean ?) ?

    Aussi, j'ai une autre question qui n'a rien avoir : est-ce qu'on peut lancer plein de requêtes AJAX avant d'avoir finir de recevoir la premiere (il me semble avoir lu quelque par que le nombre était limité) ?

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 850
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 850
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Une méthode beaucoup plus triviale consiste à générer ce contenu lors de la génération de la page elle-même
    oui mais ça fait un peu plus de boulot car il faut générer la valeur des variables (et leur affichage) dans le .json et dans le .htm => ça fait deux processus à faire au lieu d'un (donc plus de temps pour debugger, plus de code, ...) et en plus ça empeche de pouvoir mettre la page .htm en cache (donc on réduit un peu la bande passante du serveur)

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/10/2014, 13h26
  2. [AJAX] message: connection:close content type
    Par oueissi dans le forum AJAX
    Réponses: 5
    Dernier message: 25/04/2009, 19h55
  3. [AJAX] Ajax error error
    Par horror dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/01/2009, 13h45
  4. Réponses: 1
    Dernier message: 14/08/2008, 16h06

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