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).

Другие вопросы по тегам