J'ai un truc étrange qui ne s'effectue que sur une bête de course. En effet, je n'ai pas pu reproduire l'erreur hormis sur un ordinateur extrêmement rapide (par rapport au autre testé).
Côté serveur j'ai un PHP qui envoi un XML avec les headers et tout et tout (je ne mets pas les include & co, juste l’essentiel):
<?php
$xmlStr = '<?xml version="1.0" encoding="UTF-8" standalone="no"?><DONNEES>';
$xmlStr .= '<VALIDE>FALSE</VALIDE>';
$xmlStr .= '<TEXTE>PAS CONNECTE</TEXTE>';
$xmlStr .= '</DONNEES>';
header ("Content-Type:text/xml");
echo $xmlStr;
exit;
?>
Dans un ajax jQuery j'ai :[javascript]$.ajax ({
url : "ajax_utilisateurs.html",
data : {t: "identification", c : sha256(courriel), m :sha256(motDePasse)},
type : "post",
cache : false,
complete : function (xhr, result) {
if (result != "success") return;
var reponse = xhr.responseText;
if ($(reponse).find('VALIDE').text() == "TRUE") {
//traitement true
}
else {
//traitement false
}
$('.connexion .reponse').html($(reponse).find('TEXTE').text());
...[/javascript]
ceci fonctionne Mais quand je mets :
[javascript]$.ajax ({
url : "ajax_utilisateurs.html",
data : {t: "identification", c : sha256(courriel), m :sha256(motDePasse)},
type : "post",
cache : false,
complete : function (xhr, result) {
if (result != "success") return;
var reponse = xhr.responseXML; //changement ici
if ($(reponse).find('VALIDE').text() == "TRUE") {
//traitement true
}
else {
//traitement false
}
$('.connexion .reponse').html($(reponse).find('TEXTE').text());
[/javascript]
La réponse $(reponse).find('VALIDE').text() retourne une erreur jQuery :
Code : Tout sélectionner
balise ne correspondant pas. Attendu : </input>. Système (2)
<div><input></div>Le message d'erreur apparait dans la console (firebug) et c'est tout. (du moins j'en ai l'impression)
En fait, cela apparait dès que la fonction "find" de jquery est utilisée (c'est pourquoi le (2) est indiqué : dans le reste de la fonction il y a deux appels de la fonction "find") et cela ne se produit qu'avec un ordinateur "rapide".
Avez vous des idées ?