Ошибка FineUploader после обработки страницы Coldfusion

Я установил последнюю версию FineUploader, и она отлично отображается на моей странице.

 $(document).ready(function () {
    $('#jquery-wrapped-fine-uploader').fineUploader({
      request: {
        endpoint: 'fu/fineuploader.cfm'
      }
    }).on('error', function(event, id, name, reason) {
        alert('error');
      })
      .on('complete', function(event, id, name, responseJSON){
        alert('complete');
      });
  });

Затем я выбираю файл, и он успешно связывается со страницей Coldfusion. Если я посмотрю в инструменты/консоль отладчика, я увижу ответ страницы Coldfusion. Если я CFDUMP данные FORM, я также вижу, что файл передается. Так что все работает до сих пор.

Однако, как только страница Coldfusion завершена, вызывающая страница запускает функцию «ошибка» и предупреждает об «ошибке».

Если смотрю в отладчике/консоли, то ошибок нет. Поэтому я не могу понять, почему элемент управления все еще возвращает ошибку. Я подозреваю, что ошибка может заключаться в том, что я возвращаю со страницы cfm, которая в данный момент (это все, что написано на странице cfm на данный момент):

<cfoutput>#serializeJSON( 'true' )#</cfoutput>

Кто-нибудь видит здесь что-то не так? Я действительно не знаю, где искать, чтобы попытаться решить эту проблему, так как ошибок нет.

Я использую CF10, FineUploader 3.3, Chrome.

Заранее спасибо.

ОБНОВЛЕНИЕ/ДОПОЛНЕНИЕ К ПРИНЯТОМУ ОТВЕТУ:

По сути, ответ должен быть не только правильно отформатирован в формате JSON, но и иметь пару имя/значение «success»: «true».

Итак, раньше JSON, который я возвращал, был таким, который является действительным JSON, но не удался:

{"name":"Peter"}

Однако он начал работать должным образом только после добавления имени/пары «успех»: «истина»:

{"success":"true","name":"Peter"}

person Paolo Broccardo    schedule 18.03.2013    source источник


Ответы (2)


При успешной загрузке ваш ответ JSON должен вернуть ключ «успех» со значением «истина».:

{
  "success" : "true"
}

Если Fine Uploader не видит ключ JSON "success" со значением "true", он предполагает, что загрузка не удалась на стороне сервера. Дополнительные свойства JSON также могут быть включены в ответ.

person Jason Noer    schedule 18.03.2013
comment
Спасибо. Ты прав. Хотя объект JSON может быть любым объектом JSON, он должен иметь эту пару имя/значение успеха:true, как вы указали, чтобы функциональность работала правильно, даже если эта пара имя/значение НЕ требуется для действительного JSON. - person Paolo Broccardo; 19.03.2013
comment
@Leigh - я вернул текст обратно, потому что используемый инструмент на самом деле называется Fine Uploader (а не File). Я попытался ввести это как комментарий к откату, но не понял, как это сделать. - person Miguel-F; 19.03.2013
comment
@Miguel-F - Ой, ты прав! (Мозг видит то, что ожидает увидеть ;-) Спасибо за исправление. - person Leigh; 19.03.2013

Вам нужно указать переменную ColdFusion в вызове serializeJSON() (переменная, которую вы хотите сериализовать). Кроме того, указав «true» в качестве второго параметра функции serializeJSON(), вы фактически говорите ей создавать вывод WDDX, а не JSON. Документацию по SerializeJSON см. здесь.

Ваш код должен выглядеть примерно так:

<cfoutput>#serializeJSON(YourCFVariableHere)#</cfoutput>
person Miguel-F    schedule 18.03.2013
comment
Спасибо, я пробовал это, но просто чтобы быть уверенным, я попробовал это снова. Та же ошибка. Это код: <cfset sData = StructNew() /> <cfset sData["name"] = "Peter" /> <cfoutput>#serializeJSON( sData )#</cfoutput> - person Paolo Broccardo; 18.03.2013
comment
Этот код отлично работает для меня. Вы получаете какие-либо ошибки? Помните, что ColdFusion по умолчанию добавляет к выходным данным JSON префикс //. - person Miguel-F; 18.03.2013
comment
Ошибок нет, что очень странно. Просто красное диалоговое окно, в котором говорится, что загрузка не удалась, а также предупреждение, которое я вставил, в котором говорится об ошибке. Кроме этого, в Firebug нигде нет ошибок. Возвращаемый ответ: {"name":"Peter"} - person Paolo Broccardo; 18.03.2013
comment
Итак, вывод JSON правильный. Содержит ли ваша переменная Reason что-нибудь полезное? - person Miguel-F; 18.03.2013
comment
Reason unknown Полезно, я знаю. - person Paolo Broccardo; 19.03.2013