2015-06-10 5 views
5

В любое время, когда я использую serializeJSON в cf9, возвращаемый JSON добавляется с помощью //. Это довольно неприятно, потому что даже coldfusion выдает ошибку, пытающуюся декодировать это как json. Например:Coldfusion 9 serializeJSON()

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

Приведенный выше код выдает сообщение об ошибке «Невозможно разобрать символ в позиции 1: /». Чтобы выполнить эту работу, я должен выполнить замену строки и ее замену на '//'.

Возможно, я не могу найти информацию по этой проблеме. Это какая-то особенность, которую я не понимаю и работает по назначению? У меня отсутствует какая-то настройка, которая исправляет это?

+4

вы можете изменить настройку CF Admin в разделе «Настройки сервера»> «Настройки». Отключите поле «Префикс сериализованного JSON с» –

+2

@MattBusche. Вы должны отправить свой комментарий к ответу. Это определенно, откуда происходит '//'. Но имейте в виду, что рекомендация отключить эту настройку представляет потенциальный риск для безопасности. Просто, чтобы ОП и другие знали. –

+1

@MattBusche - Не могли бы вы обновить свой ответ, чтобы упомянуть о [последствиях безопасности] (http://stackoverflow.com/questions/15501123/coldfusion-10-returnformat-json-adding-characters) отключения этой функции? В случае, если следующий парень, читающий его, не знает об этом и применяет его, не понимая последствий. – Leigh

ответ

8

Вы можете отключить это в администраторе ColdFusion. Перейдите в «Настройки сервера»> «Настройки» и снимите отметку Prefix serialized JSON with

Однако, если вы отключите его, есть последствия для безопасности. Это помогает защитить ваши данные в формате JSON от атак межсайтовых сценариев и объясняется более подробно в этой StackOverflow answer

0

Быстрого обновлении: Парень, представленным ранее билет ошибки в Adobe отключить безопасный JSON префикс функции SerializeJSON в форма атрибута ..

Ticket [Fixed]

с тех пор Adobe обязан и добавил атрибут useSecureJSONPrefix на SerializeJSON Funtion.

Documentation

Таким образом, вы можете держать безопасную установку в ColdFusion Administrator и просто отключить его, где это не нужно.

 Смежные вопросы

  • Нет связанных вопросов^_^