处理Coldfusion页面后出现FineUploader错误

时间:2013-03-18 19:09:42

标签: coldfusion fine-uploader

我已经实现了最新版本的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页面完成,调用页面将触发'error'函数并发出'error'警告。

如果我查看调试器/控制台,则没有错误。所以我无法理解为什么控件仍然返回错误。我怀疑错误可能是我从cfm页面返回的,这是当前的(这是目前在cfm页面中写的所有内容):

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

有人在这里看错了吗?我真的不知道在哪里尝试解决这个问题,因为没有错误。

我正在使用CF10,FineUploader 3.3,Chrome

提前致谢。

接受答复的更新/附件:

基本上,响应不仅必须是JSON格式正确,而且必须具有“success”的名称/值对:“true”。

所以,之前,我回来的JSON就是这个,它是有效的JSON,但是失败了:

{"name":"Peter"}

但是,只有在添加“成功”后才能正常工作:“真实”名称/对:

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

2 个答案:

答案 0 :(得分:4)

成功上传后,您的JSON响应必须返回值为“true”的密钥“success”。:

{
  "success" : "true"
}

如果Fine Uploader没有看到值为“true”的JSON键“success”,则它假定服务器端的上载失败。其他JSON属性也可以包含在响应中。

答案 1 :(得分:1)

您需要在serializeJSON()调用(要序列化的变量)中指定ColdFusion变量。此外,通过将'true'指定为serializeJSON()函数的第二个参数,您实际上是在告诉它创建WDDX输出,而不是JSON。 See the documentation for SerializeJSON here

您的代码应该类似于:

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