La livebox Orange bugge. Après avoir fait le tour de mes browsers, même ceux du côté obscur, j’ai cherché dans les forums pour voir si d’autres avaient de problème d’interface de configuration indisponible sur livebox play. Me sentant décidément très seul, j’ai sorti mon firebug et me suis lancé dans un gros travail d’inspection.
Lors de JSON.parse il me dit:
[bus] error handling ajax request
Ce sur plusieurs pages, les autres browsers loguant des choses tout à fait similaires.
Le JSON en question ne semblait pas suspect dans la console mais, à le lire, observe que l’erreur de situe lorsqu’il récupère les infos sur les devices connectés. Un petit coup de JSONLint (http://jsonlint.com/) me révèle bel et bien une erreur dans la section relative à mon smart screen Samsung. J’ai cru au début à un problème d’encodage mais rien d’évident à la vue.
Ce n’est qu’en copiant la ligne dans un éditeur de texte orienté caractère comme pspad que je n’ai enfin compris quoi qu’en copiant la ligne dans mon terminal j’avais déjà un début de réponse.
« userClassID »: « »,
Là on ne devine rien mais un prenant le même segment dans un éditeur précis (Sublime Text 2 sur mon mac) je vois non des doubles quotes vides mais contenant un caractère de contrôle S0H !! Je ne comprends pas vraiment la notation de Sublime mais il s’agit d’un caractère de contrôle que les gars d’Orange.fr ont oublié de filtrer, reste à savoir lequel. SOH est en fait le premier caractère de la table ascii, Start of Header pour être précis.
Je ne sais pas trop comment contourner ce bug pour le moment mais je l’ai identifié. Avec du XML l’erreur aurait été la même mais cela aurait été à mon avis plus simple à identifier.