2015-06-10 7 views
5

Immer wenn ich serializeJSON in cf9 benutze, wird der zurückgegebene JSON mit '//' vorangestellt. Das ist ziemlich frustrierend, weil selbst Coldfusion einen Fehler erzeugen wird, wenn man versucht, das als Json zu dekodieren. Zum Beispiel:Coldfusion 9 serializeJSON()

Der obige Code wird einen Fehler wie etwas zu sagen, dass 'nicht in der Lage, Zeichen an Position 1 zu analysieren: /'. Um dies zu tun, muss ich einen String ersetzen und für das '//' 'austauschen.

Ich kann anscheinend keine Informationen zu diesem Thema finden. Ist das eine Art von Funktion, die ich nicht verstehe und wie beabsichtigt funktioniert? Fehle ich eine Art von Einstellung, die das behebt?

+4

Sie können die Einstellung der CF-Admin unter Server-Einstellungen> Einstellungen ändern. Deaktivieren Sie das Feld "Präfix serialisiert JSON mit" –

+2

@MattBusche sollten Sie Ihren Kommentar zu einer Antwort fördern. Hier kommt definitiv das '//' her. Bedenken Sie jedoch, dass die Empfehlung, diese Einstellung zu deaktivieren, ein potenzielles Sicherheitsrisiko darstellt. Nur um das OP und andere aufmerksam zu machen. –

+1

@MattBusche - Könnten Sie bitte Ihre Antwort aktualisieren, um die [Sicherheitsimplikationen] (http://stackoverflow.com/questions/15501123/coldfusion-10-returnformat-json-adding-characters) der Deaktivierung dieser Funktion zu erwähnen? Für den Fall, dass der nächste Leser es nicht weiß und es anwendet, ohne die Verzweigungen zu verstehen. – Leigh

Antwort

8

Sie können dies im ColdFusion-Administrator deaktivieren. Gehen Sie zu Servereinstellungen> Einstellungen und deaktivieren Sie die Option Prefix serialized JSON with

. Es gibt jedoch Auswirkungen auf die Sicherheit, wenn Sie diese Option deaktivieren. Dies hilft, Ihre JSON-Daten von Cross-Site-Scripting-Attacken zu schützen und wird mehr in der Tiefe in diesem StackOverflow answer

0

Quick Update erklärt: eingereicht Ein Mann zuvor ein Bug Ticket Adobe den sicheren JSON Präfix der SerializeJSON Funktion deaktivieren in die Form eines Attributs ..

Ticket [Fixed]

Seitdem verpflichtet Adobe und hinzugefügt, um das Attribut useSecureJSONPrefix auf die SerializeJSON funtion.

Documentation

Auf diese Weise können Sie die sichere Einstellung in Coldfusion Administrator halten und einfach deaktiviert, wenn Sie es nicht brauchen.