Je ne comprends pas ça, j'ai ce code:

<html>
<head>
<title>Problema</title>
<script language="javascript" type="text/javascript" src="jquery-1.7.min.js"></script>
</head>
<body>
<script language="javascript">

$.get("hola.html", function(respuestaSolicitud){
   alert(respuestaSolicitud);
}) 

</script>
</body>
</html>

Le fichier hola.html contient uniquement une chaîne "hola hola". L'alerte affiche cette chaîne: [Object XMLDocument], selon un manuel, cela devrait afficher une alerte avec le texte "hola hola".

-1
Kalamarico 15 nov. 2011 à 14:41

4 réponses

Meilleure réponse

Je pense que cette page vous aidera: http://api.jquery.com/jQuery.get/

Et en particulier ce paragraphe:

La fonction de rappel de réussite reçoit les données renvoyées, qui seront être un élément racine XML, une chaîne de texte, un fichier JavaScript ou un objet JSON, en fonction du type MIME de la réponse . Il est également passé le texte l'état de la réponse.

2
Rodolphe 15 nov. 2011 à 10:47

Si vous vous attendez à ce que HTML soit renvoyé de la demande AJAX, vous devez le spécifier dans le paramètre datatype. jQuery est bon pour deviner le type de données retourné, mais peut être confondu entre XML et HTML lorsqu'il ne renvoie qu'une partie d'une page HTML.

$.get(
   "hola.html", 
    function(respuestaSolicitud) {
        alert(respuestaSolicitud);
    },
    dataType: "html"
);
1
Rory McCrossan 15 nov. 2011 à 10:54

Essaye ça:

$.ajax({
  type: "GET",
  url: "hola.html",
  contentType: "text/plain; charset=utf-8",
  success: function(data, textStatus){
    alert(data);
  },
  error: function(data){
    alert("error");
  }
});
1
Abdul Munim 15 nov. 2011 à 10:48

Essayez plutôt getJSON. Cela semble le meilleur pour ce cas.

$.getJSON("test.html", function(json){ alert(json); });
-1
Cheruiyot Felix 15 nov. 2011 à 10:53