Question

Je fais une demande à un programme CGI utilisant AJAX. La réponse m'envoie content-length. Mon but est d’afficher de manière dynamique les progrès de la réponse. Pour cela, je dois démarrer une fonction sur la valeur onreadystate de l'objet XHR afin qu'elle soit 3. Mais la demande ne semble pas acquérir ce numéro d'état. Au lieu de cela, il passe directement de l'état 1 à l'état 4. Qu'est-ce qui me manque?

Était-ce utile?

La solution

La réponse risque d’être si rapide que vous ne la remarquerez pas à l’état 3. Surtout si vous l’exécutez sur localhost, la réponse pourrait être transmise très rapidement. Vous pouvez essayer de définir une alerte à l'étape 3 pour vérifier si elle y parvient réellement. De plus, je pense qu'Internet Explorer indique que l’accès à la réponse de la troisième étape est une erreur, ainsi il pourrait y avoir des problèmes de compatibilité.

Autres conseils

Si vous utilisez localhost, le navigateur n'aura probablement aucune chance de s'exécuter entre le moment où il envoie la demande et celui où il reçoit la réponse ...

  1. le navigateur ouvre la connexion, définit readyState sur 1
  2. le navigateur envoie un paquet au processus serveur
  3. le processus serveur reçoit un paquet, obtient la priorité du planificateur
  4. serveur renvoie les données au navigateur et permet de contrôler le processeur. Le navigateur continue l'exécution.
  5. le navigateur voit que toutes les données ont été reçues, définit readyState sur 4.

Longue histoire courte: ne comptez pas entrer dans la section "réception". Etat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top