9
votes

jquery $ .ajax réponse vide, mais seulement en chrome

J'ai épuisé chaque avenue de recherches pour résoudre celui-ci, j'espère que quelqu'un d'autre pensera à quelque chose que je ne pensais pas.

Configuration relativement droite, j'ai une page HTML avec une demande javascript qui fait une demande Ajax Pour une URL (dans le même domaine), l'application Web Java dans l'arrière-plan fait ses trucs et renvoie une page HTML partielle (aucune balise HTML, tête ou corps, uniquement le contenu) qui doit être inséré à un point particulier de la page. P>

Tous les sons assez faciles et le code que j'ai travaille dans IE, Firefox et Safari, mais pas en chrome. Chrome, l'élément cible vient de finir à vide et si je regarde la demande de ressource dans les outils de développeur de chromes, le contenu de la réponse est également vide. P>

Tout très déroutant, j'ai essayé une myriade de choses à résoudre et je suis juste à court d'idées. Toute aide serait grandement appréciée. P> xxx pré>

Tout cela est exécuté dans un $ (document) .Readady (fonction (fonction () {}); p>

À votre santé, Jim p>

@Oneg - Informations supplémentaires demandées, un exemple de réponse que l'appel AJAX pourrait recevoir. P>

<p class="message error hidden">An unknown error occured while trying to
retrieve data, please try again shortly.</p>
<div class="timeline">
   <a class="icon shuttle-previous"
rel="max_id=16470650733&page=1&q=something">Newer Data</a>
   <a class="icon shuttle-next"
rel="max_id=16470650733&page=3&q=something">Older Data</a>
</div>
<ol class="social">
   <li class="even">
       <div class="avatar">
           <img src="sphere_normal.gif"/>
       </div>
       <p>
           Some Content<br/>
           <span class="published">Jun 18, 2010 11:29:05 AM</span> - <a
target="_blank" href="">Direct Link</a>
       </p>
   </li>
   <li class="odd">
       <div class="avatar">
           <img src="sphere_normal.gif"/>
       </div>
       <p>
           Some Content<br/>
           <span class="published">Jun 18, 2010 11:29:05 AM</span> - <a
target="_blank" href="">Direct Link</a>
       </p>
   </li>
</ol>
<div class="timeline">
   <a class="icon shuttle-previous"
rel="max_id=16470650733&page=1&q=something">Newer Data</a>
   <a class="icon shuttle-next"
rel="max_id=16470650733&page=3&q=something">Older Data</a>
</div>


15 commentaires

Courez-vous cela localement?


Oui Nick tout cela est en cours d'exécution sous une application Web Java et est donc sur ma machine locale en ce moment comme localhost: 8090


@RogueGoguePixel - Pour un test rapide, essayez d'exécuter Chrome avec un - Désactiver l'option-web-sécurité sur la ligne de commande, même résultat?


@Nick, Malheureusement, le même résultat, j'ai repéré celui-ci sur une question similaire il y a un moment.


@RogueGoguePixel - intéressant, la réponse vide semble être bloquée cross-domain, mais cela devrait le réparer ... comme un test n'est pas une solution bien sûr (avez-vous eu Tous les fenêtres chromées chromées sont fermées lorsque vous avez essayé ce?)


@Nick, je viens de fermer toutes mes fenêtres chromées et j'ai recommencé avec l'option que vous avez suggérée et toujours un élément vide. Il suffit de tester les autres navigateurs juste pour être sûr et tout fonctionne toujours comme prévu dans le reste.


@RogueGoguePixel - très étrange, pas sûr de pouvoir donner plus de conseils à moins qu'il y ait une URL que nous pourrions frapper quelque part, quelque chose est définitivement un peu désactivé, mais rien de ce code que je peux voir.


@Nick, malheureusement, il n'y a pas d'URL car il est pour une application Web de la société privée, merci pour vos pensées.


Pourriez-vous poster la conception de HTML qui sera renvoyée de / chemin / chemin / à / local / url? Paramètres = valeur et autre = valeur2 . Le problème peut probablement être résolu que de ces informations supplémentaires.


Testez votre fonction de données. Et vérifiez que le mime est retourné du XHR est HTML.


@ user257493 - Oui j'ai vérifié la fonction de données, semble être d'accord. L'en-tête de réponse Type de contenu est le même dans tous les navigateurs text / html; Charset = ISO-8859-1


@Oleg - S'il vous plaît voir mes informations supplémentaires ajoutées à la question originale où je peux mieux le formater.


Vous devriez essayer de renifler le trafic avec un outil TCP / IP, par ex. tcpdump ou Wireshark


@RogueGoguePixel Vous devez essayer avec Type de contenu = Texte / Plain


Quel est l'en-tête de réponse d'état revenant du serveur, 200? Avez-vous utilisé un outil comme Fiddler pour examiner tous les en-têtes allant à votre serveur et à votre retour? Sont-ils tous identiques dans le navigateur de travail chrome vs? Si, vous pouvez voir dans Fiddler, que le serveur renvoie un corps vide, il doit y avoir une différence dans la demande.


3 Réponses :



2
votes

Je viens de résoudre un problème similaire et je pensais poster ma solution au cas où elle est utile pour quelqu'un d'autre.

Seulement Firefox et Chrome montraient une réponse AJAX vide, il semblait donc être un problème de domaine croisé, mais tout était sur le même domaine.

Il s'est avéré que le 'www.', que j'avais superflu et stupidement à codé dur dans mon URL Ajax était à blâmer. Si j'utilisais un chemin relatif, tout aurait été bien.

J'avais mon site de test ouvert à ce moment-là comme " http://domain.com ", sans 'www.', si Firefox et Chrome l'ont traité comme un domaine différent. Navigationner à " http://www.domain.com " a abouti à l'appel AJAX au travail dans toutes les brouilleurs. < / p>

Donc, étant donné que vous avez écrit:

URL: '/ chemin / à / local / url'

.. comme c'est la convention lorsque nous ne voulons pas divulguer nos chemins, je ne pouvais pas m'empêcher de me demander si en fait, vous aviez écrit une voie absolue, tout comme j'avais ...?


1 commentaires

Tu as sauvé ma journée! Je viens d'essayer Ajax Call in chrome 8.0.552.237 - avec un chemin relatif "bin / test.php" (le serveur est dans mon réseau local) -> Ça fonctionne bien
- avec un chemin absolu "< Un href = "http://192.168.0.101/bin/test.php" rel = "nfollow NOREFERRER"> 192.168.0.101/bin/test.php "(le serveur est dans mon réseau local) -> Ça ne marche pas !!!

Merci!



1
votes

Chrome a marché sur son pied avec des fichiers locaux Security, donc pas de fichiers locaux Ajaxing avec des chemins relatifs: http://code.google.com/p/chromium/issues/detail ? id = 47416


0 commentaires