J'utilise traditionnellement FireBug pour déboguer mes demandes AJAX. Il vous permet d’examiner le contenu de votre demande ainsi que la réponse renvoyée par le serveur. (Il vous avertit également dans la console lorsque cela se produit, ce qui est une fonctionnalité utile qui semble manquer de Chrome).
Dans Chrome, il semble que je ne puisse voir que les demandes, pas les réponses. Lorsque j'essaie d'examiner la réponse, l'interface utilisateur affiche simplement "Pas de contenu disponible" (Outils de développement> Ressources> myRequest.php> Contenu). Dois-je activer quelque chose pour que les outils de développement de Chrome se souviennent de ces demandes?
EDIT: Au cas où cela serait nécessaire, ces requêtes sont effectuées dans un objet Flash.
Le contenu des réponses ajax n'est pas encore visible si la demande est générée par un plugin . Il y a une chance que ce problème soit résolu bientôt.
Si vous êtes sur un canal de développement de Google Chrome:
http://www.chromium.org/getting-involved/dev-channel
... vous devriez pouvoir cliquer avec le bouton droit de la souris sur la console des outils de développement et cliquer sur "Activer la journalisation XMLHttpRequest".
Une fois qu'il est activé, vous verrez les demandes XHR dans la console et pourrez cliquer dessus pour accéder au panneau des ressources, où vous pourrez voir le contenu d'un XHR.
Ce que vous voyez peut-être n'est que la demande OPTIONS
d'une demande CORS traitée comme une demande XHR par l'inspecteur Google Chrome. Ainsi, si vous filtrez par requête XHR, vous risquez de ne voir que la requête de contrôle en amont initiale OPTIONS, dont la réponse ne contient aucun contenu, et de vous perdre, car il semble que Chrome refuse d'afficher la réponse. Désactivez le filtre et passez à la requête suivante pour cette même URL, qui sera probablement la requête "réelle" correspondant à cette requête de contrôle en amont CORS.
J'ai rencontré le même problème: demande POST de flash + réponse JSON + aucune réponse affichée dans l'inspecteur de Chrome. Pas de problème avec FF + FireBug cependant.
L'ajout de charset = utf-8 à Content-Type dans les en-têtes de réponse a résolu le problème pour moi:
Type de contenu: application/json; jeu de caractères = utf-8
Je ne sais pas si c'est la solution appropriée à ce problème, mais au moins, je suis en mesure de voir maintenant la réponse JSON dans Chrome Inspector.
J'ai eu une réponse vide parce que le script envoyait des données vides par
die();
Activez le suivi des ressources, puis cochez l'onglet Ressources. Le suivi des ressources semble fonctionner beaucoup mieux si vous cochez "Toujours utiliser le suivi des ressources".
La raison peut être non seulement en chrome, mais aussi en prévisualisation, même avec du code JS. Par exemple, il existe un plugin pour Vue.js
appelé vue-resorcese
et qui présentait le problème suivant: Chrome, aucune donnée de réponse après la demande OPTIONS? J'ai vécu avec ce problème plusieurs mois avant de trouver cette question aujourd'hui. La question actuelle n’a jamais donné de réponse, je la partage donc ici.
Détails: Ce plugin avait le code suivant qui crée un objet XHR:
if ('responseType' in xhr && SUPPORTS_BLOB) {
xhr.responseType = 'blob';
}
Ce code était correct et la prévisualisation fonctionnait, mais jusqu’à la mise à jour de chrome. Aujourd'hui, lorsque j'ai commenté cette action, l'aperçu est de nouveau apparu! Alors, commencez par vérifier votre wrapper XHR, peut-être qu’il a quelque chose comme ça.
C'était le problème rare parce qu'il a été reproduit uniquement avec le contrôle en amont de la SCRO. BTW en cliquant droit sur le OPTIONS XHR
et REPLAY
a également montré aperçu.
voilà
Dans le rappel d'échec, le premier paramètre a une propriété appelée responseText.
PHP
:La raison en est peut-être que l'adresse demandée ( php page) contient des erreurs. Mais comme de nombreux hébergements ont désactivé la sortie d'erreur, vous devez l'activer dans le fichier demandé.php
(à placer quelque part en haut du fichier):
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Après cela, vous verrez la réponse ici.