Coldfusion cfc возвращает ошибки и проблемы с данными json - PullRequest
0 голосов
/ 17 марта 2011

У меня есть два сервера, разработка и производство, оба работают под управлением IIS7 и Coldfusion 8. Standard.

Однако на производстве весь веб-сайт работает на ssl, все страницы, кроме имени входа, - ssl.

Я работал над поиском сайтов наполовину Coldfusion / наполовину ajax.

На нашем сервере dev все прошло гладко, когда я перешел на работу, я начал получать действительно странные ошибки.

Кактот факт, что данные не возвращали данные в формате json, хотя returntype = json, и у меня был serializejson вокруг массива, который возвращал данные.

Затем, когда я попытался удалить returntype = json,всегда говорите неверный токен.

Когда вызывается ajax, он обязательно указывает тип данных json и returnformat в URL-адресе, скажем, json.И все это прекрасно работает на нашем dev-сервере, но часть ajax отказывается работать на производстве.

Сначала я подумал, что это потому, что возникла проблема ssl, которая, если URL-адрес ajax равен ssl, тоВ сообщении об ошибке говорится о политике доступа одного и того же источника, поэтому я изменяю URL-адрес ajax на non-ssl, а затем он либо возвращает данные, не возвращаемые json, либо сообщает о недействительном токене.

Inмой CFC, у меня есть основной CFC, который получает все данные, которые мне нужны, форматировать их по-разному, как мне нужно, а затем поместить эти результаты в разные позиции внутри массива.

Затем запустите затем

Я попытался убрать returntype = json в команде cffunction, и это, кажется, работает, когда я пытаюсь просмотреть cfc в url напрямую.Но когда ajax вызывает его, либо он говорит неверный токен.

Когда я запускаю один и тот же код на dev, ошибок нет, все ajax работает на 100%.

Любые предложения по проблеме?

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

Я думаю, что знаю проблему, я столкнулся с этим несколько лет назад. Вы должны отправить правильный заголовок обратно перед вашим JSON. Попробуйте один из них, прежде чем начать вывод чего-либо:

<cfcontent type="application/json; charset=utf-8">

Таким образом, jQuery сможет правильно идентифицировать его как JSON, возвращающийся с сервера. Если вы указываете jQuery ожидать json, а сервер не отправляет этот заголовок, иногда он немного запутывается: /

Надеюсь, это поможет!

0 голосов
/ 17 марта 2011

Ну, очевидно, после того, как я удалил dataType: 'json' из запроса ajax, он начал работать!

sweet mama.Интересно, почему это так странно на производстве против dev.

Спасибо.

...