Coldfusion 10 returnformat="JSON" добавление символов
У меня есть приложение, которое я работаю над преобразованием из CF8 в CF10, и некоторые из моих удаленных CFC, в которых данные должны возвращаться в формате JSON, теперь не работают, потому что, кажется, к возвращенным данным предварительно добавлено "//". Например, вот вывод возвращаемой структуры:
//{"SUCCESS":true,"ERRORS":[],"DATA":{"COLUMNS":["AUTHRESULT","SPID","EMAIL","RID"],"DATA":[[true,361541,"user@domain.com",""]]}}
Эта же функция, запущенная через тот же CFC на сервере CF8, дает:
{"ERRORS":[],"SUCCESS":true,"DATA":{"COLUMNS":["AUTHRESULT","SPID","EMAIL","RID"],"DATA":[[true,361541,"user@domain.com",""]]}}
CFC, который проксирует все запросы, имеет returnFormat="JSON" - но SerializeJSON() не вызывается ни в proxyCFC, ни в CFC, расширенном от proxyCFC.
Я не уверен, что лучший способ справиться с этим. Обрезание "//" в ответе было бы возможно, но это не кажется "правильным". Мне нужно обратиться к этому вопросу в конце CF10, потому что эти функции используются не только в нашем приложении, но и в некоторых удаленных приложениях (и некоторые через http:// posts, а некоторые через jQuery Ajax-вызовы).
1 ответ
Это настройка на стороне сервера в администраторе ColdFusion, в настройках. Префикс сериализованный JSON с. Он включен по умолчанию для безопасности. Защищает веб-службы, которые возвращают данные JSON от межсайтовых скриптовых атак, добавляя префикс сериализованных строк JSON с пользовательским префиксом., Возможно, вы отключили это на своем сервере ColdFusion 8. Я не рекомендую выключать это все же.
Смотрите этот пост от Рэймонда Камдена - Обработка JSON с префиксами в jQuery и jQueryUI
ПРИМЕЧАНИЕ: этот параметр также можно установить для каждого приложения, установив secureJSON
а также secureJSONPrefix
в вашем файле Application.cfc. Смотрите документацию об этом здесь - переменные приложения.
secureJSON
- Булево значение, которое указывает, следует ли добавлять префикс безопасности перед значением, которое функция ColdFusion возвращает в формате JSON в ответ на удаленный вызов.
Значением по умолчанию является значение параметра JSON Prefix serialized на странице "Настройки сервера администратора> Настройки" (по умолчанию false). Вы можете переопределить это значение в теге cffunction.
secureJSONPrefix
- Префикс безопасности для указания значения, возвращаемого функцией ColdFusion в формате JSON в ответ на удаленный вызов, если для параметра secureJSON задано значение true.
Значением по умолчанию является значение сериализованного параметра JSON "Префикс" на странице "Настройки сервера администратора> Настройки" (по умолчанию // символ комментария JavaScript).