Bonjour à tous,
J'ai un problème, je ne comprend pas du tout comment fonctionne c'est deux objet. Dans mon petit exemple j'envoi une requète a mon serveur et il me renvoit les donné dans un flux comme suis:
Exemple avec les JSP:
Ensuite, quand je veux lire les données du côté client, sa marche pas. Quand je fais XMLHttpRequest.responseXML ça fonction je reçois un objet, et j'ai plus vérifier que c'étais un XMLDocument en exécutant le meme script sur firefox en faisant un alert(XMLHttpRequest.responseXML).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int provinceId = new Integer(req.getParameter("state")).intValue(); resp.setHeader("Content-type",req.getContentType()); resp.setCharacterEncoding(req.getCharacterEncoding()); String xmlFile = "<?xml version='1.0' standalone='yes' ?>"+ "\n<listVille>"+ "\n\t<ville>\n\t\t<num>0</num>\n\t\t<nom>Aucune sélection</nom>\n\t</ville>"; Connection connectBD = DriverManager.getConnection(this.urlBD); ResultSet rs = connectBD.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery("select * from Ville where province="+provinceId); while (rs.next()) { xmlFile += "\n\t<ville>\n\t\t<num>"+rs.getInt("id")+"</num>\n\t\t<nom>"+rs.getString("nom")+"</nom>\n\t</ville>"; } xmlFile += "\n</listVille>"; rs.close(); connectBD.close(); resp.getWriter().println(xmlFile);
Rendu à cette étape je n'arrive pas a accèder à l'élément principal(root node), sous internet explorer ça me dit "null" et sur firefox le alert n'apparait meme pas sur XMLHttpRequest.responseXML.getElementByTagName("listVille"). En gros voilà mon script côté client.
Création de la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 http_request = false; if (window.XMLHttpRequest) http_request = new XMLHttpRequest(); else { if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e1) {} } } } if (http_request) { http_request.onreadystatechange = update; http_request.open("GET", url+"?state="+state_Id, true); http_request.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1"); http_request.send(null); }
Réception des données:
Avec un responseText j'ai pas de problème, mais responseXML chu fourrer, merci d'avance de m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function update() { if (http_request.readyState == 4) { if (http_request.status == 200) { var xmlDoc = http_request.responseXML; alert("XMLDoc: "+xmlDoc); var root_node = xmlDoc.getElementsByTagName("listVille") alert("RootNode: "+root_node); //Marche po... :'( //Je sais plus koi faire } else alert("Error no."+http_request.status+"\nAn error occur while receiving data"); } }
Partager