Verwenden text()
statt html()
:
$("div#output1").text(JSON.stringify(response));
Das wird eine richtige Textart Knoten in der DOM erstellen und nicht zu HTML entkommen.
Wenn das Problem weiterhin besteht, kann es serverseitig sein. In diesem Fall sehen Sie sich die HTTP-Antwort an, um zu sehen, was Sie tatsächlich vom Server erhalten.
In Chrome drücken Sie F12, um die Dev Tools zu öffnen, gehen Sie zum Netzwerk, laden Sie die Seite mit F5 und feuern Sie die AJAX Anfrage erneut ab. An diesem Punkt sehen Sie den HTTP-Anfrage/Antwort-Eintrag. Klicken Sie darauf und überprüfen Sie die Antwort Blatt, dort sehen Sie die rohen ASCII-Daten vom Server bedient. Wenn das immer noch maskiert ist, ist das Problem serverseitig.
In PHP verwenden Sie var_dump()
, um diese Zeichenfolge direkt auf die Seite (ohne AJAX) auszugeben und betrachten Sie es. Es kann bereits in der Datenbank maskiert sein. In diesem Fall müssen Sie es irgendwo entlang der Antwort-Pipeline entschlüsseln. Am einfachsten ist es, es direkt in JS auf der Clientseite zu entschlüsseln. Das erfordert nicht, dass Sie den Rest der Anwendung ändern müssen (nämlich die Eingabeformulare). Es ist in der Tat eine gute Idee, Strings in der Datenbank zu behalten.
<pre id="output1"></pre>
[Duplizieren] (http://stackoverflow.com/questions/4253367/how-to-escape-a-json-string-containing-newline-chara cters-using-javascript) –