Utilisation de responseXML dans l'objet XMLHttpRequest
Bonjour,
J'essaie d'intégrer l'AJAX à ma page jsp(html), et j'ai un petit problème. cette ligne de code n'est pas interprétée.
Code:
var messageTag = requete.responseXML.getElementsByTagName("message")[0];
Je vous passe le code complet de ma page html assez simple
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test XHR</title>
<script type="text/javascript">
var requete;
alert("start");
function valider(){
alert("good");
var donnees = document.getElementById("donnees");
var url = "valider?valeur="+escape(donnees.value);
if (window.XMLHttpRequest){
requete = new XMLHttpRequest();
}else if (window.ActiveXObject){
requete = new ActiveObject("Microsoft.XMLHTTP");
}
requete.open("GET", url, true);
requete.onreadystatechange = majIHM;
requete.send(null);
}
function majIHM(){
alert('go')
var message = "";
if (requete.readyState == 4){
if(requete.status == 200){
alert('gogo')
// issue here
var messageTag = requete.responseXML.getElementsByTagName("message")[0];
alert('gigigi')
message = messageTag.childNodes[0].nodeValue;
mdiv = document.getElementById("validationMessage");
alert('gogogo')
if (message == "invalide"){
alert('goga')
mdiv.innerHTML = "Invalide";
}else{
alert('gogi')
mdiv.innerHTML = "Valide";
}
}else{
alert("une erreur s'est produite");
}
}
}
</script>
</head>
<body>
<table>
<tr>
<td>valeur:</td>
<td>Nom <input type="text" id="donnees" name="donnees" size="30" onkeyup="valider();"></td>
<td><div id="validationMessage"></div></td>
</tr>
</table>
</body>
</html> |
Je mets ici la méthode appelée par le service ajax dans mon Controller (Je développe mon appli à l'aide de Spring MVC)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| @RequestMapping( value = "/valider" )
public void test( HttpServletRequest request, HttpServletResponse response ) {
String resultat = "invalide";
String valeur = request.getParameter( "valeur" );
response.setContentType( "test/xml" );
response.setHeader( "Cache-Control", "no-cache" );
if ( valeur != null && valeur.startsWith( "X" ) ) {
resultat = "valide";
}
try {
response.getWriter().write( "<message>" + resultat + "<message>" );
} catch ( IOException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} |
Merci de votre aide