2015-06-10 15 views
5

Ogni volta che uso serializeJSON in cf9 il JSON restituito è preceduto da '//'. Questo è piuttosto frustrante perché anche coldfusion genera un errore nel tentativo di decodificarlo come json. Ad esempio:Coldfusion 9 serializeJSON()

var a = { stuff = 'some content' }; 
a = serializejSON(a); // the content of a is now: //{"STUFF":"some content"} 
b = deserializeJSON(a); 

Il codice sopra riportato genera un errore che dice qualcosa come "impossibile analizzare il carattere nella posizione 1: /". Per fare questo lavoro devo fare una stringa di sostituzione e swap out '' per il '//'.

Non riesco a trovare alcuna informazione su questo problema. È una specie di funzionalità che non capisco e funziona come previsto? Mi manca una sorta di impostazione che risolve questo?

+4

è possibile modificare l'impostazione di CF Admin in Impostazioni server> Impostazioni. Disattiva il campo "Prefisso serializzato JSON con" campo –

+2

@MattBusche dovresti promuovere il tuo commento per una risposta. Questo è sicuramente il punto in cui '//' viene. Ma tieni presente che raccomandare di disabilitare questa impostazione sta introducendo un potenziale rischio per la sicurezza. Solo per rendere l'OP e gli altri consapevoli. –

+1

@MattBusche - Potresti aggiornare la tua risposta per citare le [implicazioni sulla sicurezza] (http://stackoverflow.com/questions/15501123/coldfusion-10-returnformat-json-adding-characters) di disabilitare questa funzione? Nel caso in cui il prossimo ragazzo che legge non lo sappia e lo applica senza comprendere le ramificazioni .. – Leigh

risposta

8

È possibile disabilitarlo nell'amministratore di ColdFusion. Vai su Impostazioni server> Impostazioni e deseleziona Prefix serialized JSON with

Ci sono, tuttavia, implicazioni sulla sicurezza se si spegne questo. Questo aiuta a proteggere i dati JSON da attacchi cross-site scripting e viene spiegato più in profondità in questo aggiornamento StackOverflow answer

0

rapida: Un ragazzo in precedenza presentato un biglietto bug di Adobe per disattivare il prefisso sicuro JSON della funzione SerializeJSON in la forma di un attributo ..

Ticket [Fixed]

Da allora Adobe obbligato e ha aggiunto l'attributo useSecureJSONPrefix sul SerializeJSON funtion.

Documentation

In questo modo è possibile mantenere l'impostazione sicuro in ColdFusion Administrator e semplicemente disabilitato dove non serve.