Je suis un peu confus. J'ai basculé mon type de contenu sur application/xhtml + xml sur mon serveur car j'utilise XHTML + quelques attributs supplémentaires (avec <!ATTLIST>
). Depuis que je l'ai fait, tout l'enfer s'est déchaîné.
Par exemple, j'ai une boîte de saisie semi-automatique qui charge les données de mon serveur. La réponse du serveur lorsqu'une requête AJAX est faite est du type de contenu application/json. Lorsque ce dernier contient une esperluette, mon navigateur crie An invalid or illegal string was specified" code: "12
. Lorsque je restaure le type de contenu de ma page en text/html, aucune erreur. Je comprends qu'une esperluette est représentée différemment en XHTML qu'en HTML, mais le type de contenu de la réponse est application/json, alors pourquoi jQuery essaie-t-il de l'analyser en xhtml?
J'ai d'autres erreurs similaires dans tout mon code (tous les jQuery/javascript liés).jQuery XHTML Compliance
Que dois-je faire pour éviter ces erreurs?
Une esperluette n'est pas représentée différemment dans HTML et XHTML - c'est '&' dans les deux. – You
@You - Ce n'est pas vrai du tout. Une esperluette peut être envoyée telle quelle en HTML, en fonction du schéma d'encodage de votre texte. En XHTML, il a une signification particulière, il doit donc généralement être enveloppé dans un bloc CDATA ou une entité codée. –
Une esperluette ne peut pas être envoyée telle quelle, l'encodage de texte n'a aucune pertinence car une perluète ne devient une esperluette qu'après le décodage. Dans pcdata, vous pouvez le citer en utilisant CDATA, ou en utilisant & (et dans les attributs, vous ne pouvez utiliser que &). –