Récupération du code d’état HTTP de l’iframe chargé avec Javascript

J’ai utilisé le plugin jQuery Form pour la soumission de formulaire asynchrone. Pour les formulaires contenant des fichiers, il copie le formulaire dans un iframe masqué, le soumet et recopie le contenu de l’iframe. Le problème est que je ne peux pas trouver comment trouver quel code d’état HTTP a été renvoyé par le serveur. Par exemple, si le serveur renvoie 404, les données de l’iframe seront copiées normalement et traitées comme une réponse normale.

J’ai essayé de fouiller dans les objects iframe à la recherche d’un atsortingbut status_code , mais je n’ai rien trouvé de tel.


La fonction $.ajax() ne peut pas être utilisée, car elle ne prend pas en charge le téléchargement de fichiers. La seule façon de télécharger de manière asynchrone des fichiers que je connais utilise la méthode iframe masquée.

Vous ne pouvez pas obtenir les en-têtes de page par JS, mais vous pouvez distinguer les erreurs du succès: Essayez quelque chose comme ceci:

   

Côté serveur:

 /* file: upload.php */ '; if(success) print 'window.parent.OnUploadComplete(1,"File uploaded!");'; else print 'window.parent.OnUploadComplete(0, "File too large!");'; print ''; ?> 

Vous ne pouvez pas récupérer directement le code d’état HTTP à partir de “iframe” chargé. Mais quand une erreur http est survenue, le serveur ne renverra rien à l’iframe. Donc l’iframe n’est pas content. vous pouvez vérifier le corps d’iframe, quand le corps d’iframe est vide, utilisez ajax avec la même URL pour obtenir la réponse du serveur. Ensuite, vous pouvez récupérer le code d’état http de la réponse.