Dans mon site web, j'utilise quelque peu la technologie ajax afin de vérifier les champs d'un formulaire dès le onBlur. Pour cela, je suis parti du cours http://siddh.developpez.com/articles/ajax/.
La méthode ajax appelle un script php qui retourne une réponse xml. Or ce script php peut attraper une exception et je souhaiterai faire remonter cette exception. Pour cela, j'utilise la fonction serialize() de la façon suivante :
Mais la réponse ajax n'arrive jamais, et si je regarde la console d'erreur firefox, elle m'indique que le xml est mal formé :Code:
1
2
3
4
5
6
7
8
9
10
11 try { ... } catch (Exception $exception) { $response = "<?xml version=\"1.0\" ?>"; $response .= sprintf("<response><message type=\"exception\">"); $response .= sprintf("<serializedException>%s</serializedException>", serialize($exception)); $response .= sprintf("</message></response>"); header('Content-Type: text/xml'); echo $response; }
Je pense qu'il s'agit des caractères spéciaux "�". Aussi, quelqu'un saurait-il comment faire pour que le xml soit bien formé et qu'il soit déserialisable à l'autre bout de la chaine ?Code:<?xml version="1.0" ?><response><message type="exception"><serializedException>O:12:"Exception":7:{s:10:"�*�message";s:7:"dommage";s:17:"�Exception�string";s:0:"";s:7:"�*�code";i:0;s:7:"�*�file";s:41:"/var/www/script.php";s:7:"�*�line";i:22;s:16:"�Exception�trace";a:0:{}s:19:"�Exception�previous";N;}</serializedException></message></response>