我已经实现了最新版本的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"}
答案 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>