2010-06-22 5 views
1

J'ai un problème de récupération des données en utilisant ajax jquery 1.3.2/1.4.2:question la récupération de données ajax

  • Il fonctionne avec IE 7/8

  • Il échoue avec FF 3.5/3.6 , Chrome 5.0.375.70

Le morceau de code jquery est très basique:

$.get('http://myhost/someurl',function(data) { 
    if (data) { 
     alert('data is: ' + data); 
    } else { 
     alert('no data'); 
    } 
}); 

Avec tous les navigateurs testés sauf IE, je tombe dans l'ELSE. j'ai comparé http headers retourne avec IE et FF et je ne vois pas ce qui pourrait provoquer le problème (« test » est en fait les données renvoyées par le serveur):

[with IE] 
    HTTP/1.1 200 OK 
    Date: Tue, 22 Jun 2010 10:01:32 GMT 
    Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch 
    X-Powered-By: PHP/5.2.4-2ubuntu5.10 
    Expires: Thu, 19 Nov 1981 08:52:00 GMT 
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
    Pragma: no-cache 
    Content-Length: 4 
    Keep-Alive: timeout=15, max=100 
    Connection: Keep-Alive 
    Content-Type: text/html 

    test 

[with FF] 
    HTTP/1.1 200 OK 
    Date: Tue, 22 Jun 2010 10:01:54 GMT 
    Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch 
    X-Powered-By: PHP/5.2.4-2ubuntu5.10 
    Set-Cookie: PHPSESSID=1777838b6006566fee273bd329463d57; path=/ 
    Expires: Thu, 19 Nov 1981 08:52:00 GMT 
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
    Pragma: no-cache 
    Content-Length: 4 
    Keep-Alive: timeout=15, max=100 
    Connection: Keep-Alive 
    Content-Type: text/html 

    test 

J'ai vérifié avec Wireshark et la réponse HTTP est bien formé (2 x "\ r \ n" entre le dernier en-tête et le contenu). En utilisant Firefox, si j'inspecte la réponse avec HTTPwatch, il me montre "test" dans le contenu. Cependant si je le regarde avec firebug je ne vois rien. Même comportement avec l'outil de dégommage Chrome.

Suis-je retardé?

Merci.

Répondre

2

Si vous faites une demande inter-domaines, il a gagné ne fonctionne pas. Les demandes inter-domaines ne sont pas autorisées en tant que mesure de sécurité. Vous aurez juste une réponse nulle.

Je suppose que vous testez la page à partir du système de fichiers. Si c'est le cas, c'est la raison pour laquelle cela fonctionne dans certains navigateurs, car certains autoriseront la requête interdomaine à se produire dans cette situation.

+0

"test" est des données html valides. L'instruction if est également valide. La bonne réponse est celle de Patrick car j'étais en train de tester depuis le système fylesystem et de faire des requêtes ajax à un serveur externe. – Max

0

Pour être sûr du résultat de l'instruction if je changerais votre contrôle à

if(data == "test"){..} 

ou test null si nécessaire

+0

Cela devrait plutôt être un commentaire! – vijaysylvester

+0

S'il vous plaît ne soyez pas offensant. Il affiche un code qui a des failles, puis corrige d'abord. Merci – Mauro