2010-10-03 4 views
2

J'essaie actuellement de résoudre un problème étrange. J'ai toujours travaillé avec ajax, json, etc mais je n'ai aucune idée pourquoi ce code simple ci-dessous ne fonctionne pas.

est inférieure à la pleine javascript et le code html:

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
     <title>Testing Ajax</title> 
    </head> 

    <body> 
     <script> 
     $(function(){ 
      $('h1').click(function(){ 
      alert('clicked');   
      jQuery.ajax({ 
       url: "teste2.html", 
       success: function(html){ 
       $('h1').append(html); 
       }, 
       error : function(){ 
       alert('errou'); 
       } 
      }); 
      }); 
     }); 
     </script> 
     <h1>Json Funfando</h1> 
    </body> 
</html> 

Dans le même dossier que j'ai un teste2.html de fichier. Quoi qu'il en soit, si je renommer l'URL en quelque chose qui n'existe pas (dasdasdsadsa.html par exemple) que $ .ajax retournera toujours le succès, même avec le fichier de nom correct les fichiers retournés sont toujours vide. La gestion des erreurs, si je l'ai inséré, n'est jamais appelée.

Quelqu'un at-il une idée de ce qui se passe?

PS .: Je tryed de le mettre sur une simple fonction onload, en changeant jQuery.ajax à .ajax

Répondre

3

$ Vous avez probablement changer la façon dont votre serveur répond et faire revenir un en-tête HTTP différent qui implique une erreur plutôt qu'un 200 OK.

Vérifiez ce que votre serveur renvoie et vérifiez qu'il renvoie l'état 404 pour les pages inexistantes.

0

@fabio - quel est l'en-tête de réponse actuel? J'ai trouvé que jQuery Ajax et les navigateurs spécifiques ne pas réellement erreur sur certaines réponses. Voici celui que je suis personnellement familier avec:

  • FF 3.6.8 retourne un xhr.status === 0 lorsque le serveur répond avec le code HTTP si 301.
Questions connexes