Kniffelig: Raute (#) in JSON-Request funktioniert nicht ohne Weiteres

Meine letzte Stunde habe ich damit verbracht, in unserem Arbeitszeitabrechnungs-Tool einen Bug zu beheben: Sobald man für eine Tätigkeit einen Kommentar mit einer Raute (#) hinterließ, wurden alle Daten, die danach folgten abgeschnitten.
Dazu ist folgendes zu sagen: Unser Tool ist eine klassische Web 2.0-Anwendung, alle Anfragen laufen über JavaScript, codiert wird mit JSON.
Auf der Serverseite nimmt mein DAOFramework (PHP5) die JSON-Daten entgegen und unserialisiert diese.

Das Problem besteht darin, dass die Javascript-JSON-Library von http://www.json.org das Raute-Zeichen nicht URL-codiert. Ich hatte deshalb die JavaScript-Methode encodeURI() benutzt, die dieses eigentlich manuell nachholen sollte. Funktionierte aber ebenfalls nicht. Damit man eine Raute in einem JSON-Request absetzen kann, muss der String ERST mit Hilfe von encodeURIComponent() codiert und danach JSON.stringify() aufgerufen werden.
Nun haut das auch hin.

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>