2013-03-18 1 views
0

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

$(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 будет завершена, вызывающая страница запускает функцию «error» и предупреждает «error».

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

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

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

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

Спасибо заранее.

UPDATE/ДОПОЛНЕНИЕ К ПРИНИМАЮТСЯ ОТВЕТ:

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

Так, прежде, JSON я возвращался был этот, который действителен в формате JSON, но не удалось:

{"name":"Peter"} 

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

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

ответ

4

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

{ 
    "success" : "true" 
} 

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

+0

Спасибо. Ты прав. Хотя объектом JSON может быть любой объект JSON, он должен иметь эту пару с именем/значением «success»: «true», поскольку вы указали, что функциональность работает правильно, даже если эта пара имя/значение НЕ требуется иметь действительные JSON. – Cheeky

+0

@Leigh - я вернул текст назад, потому что используемый инструмент на самом деле называется «Fine Uploader» (не файл). Я попытался ввести это как комментарий к откату, но не понял, как это сделать. –

+0

@ Miguel-F - Ой, вы правы! (Мозг видит то, что он ожидает увидеть ;-) Спасибо за исправление. – Leigh

1

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

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

<cfoutput>#serializeJSON(YourCFVariableHere)#</cfoutput> 
+0

Спасибо, я пробовал это, но просто чтобы убедиться, что я попробовал еще раз. Такая же ошибка. Это код: ' #serializeJSON (SDATA) #' – Cheeky

+0

Этот код прекрасно работает для меня. Вы получаете какие-либо ошибки?Помните, что ColdFusion будет префикс вывода JSON с '//' по умолчанию. –

+0

Нет ошибок, что очень странно. Просто красный диалог с надписью «Ошибка загрузки», а также предупреждение, которое я ввел, в котором говорится «ошибка». Кроме этого, в Firebug нет ошибки. Ответ возвращается: '{" name ":" Peter "}' – Cheeky

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