Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当成功上传没有响应内容时,如何避免fine uploader中的错误事件?_Javascript_Amazon S3_Fine Uploader - Fatal编程技术网

Javascript 当成功上传没有响应内容时,如何避免fine uploader中的错误事件?

Javascript 当成功上传没有响应内容时,如何避免fine uploader中的错误事件?,javascript,amazon-s3,fine-uploader,Javascript,Amazon S3,Fine Uploader,我已经将FineUploader配置为使用CORS并使用我的Amazon Web服务S3存储桶 我面临的问题是,成功上传不会返回任何响应内容(尽管状态代码为204,但响应内容为空)。因此,即使上传发生(我已验证文件已上传),也会触发错误事件。这大概是因为没有回应 我怎么处理这个案子?我是否有办法通过在“onError”回调中捕获此错误来手动触发“success” 编辑: 我在这里挖了些东西。该错误似乎源于handler.xhr.js 特别是在parseResponse(xhr)函数中 try{

我已经将FineUploader配置为使用CORS并使用我的Amazon Web服务S3存储桶

我面临的问题是,成功上传不会返回任何响应内容(尽管状态代码为204,但响应内容为空)。因此,即使上传发生(我已验证文件已上传),也会触发错误事件。这大概是因为没有回应

我怎么处理这个案子?我是否有办法通过在“onError”回调中捕获此错误来手动触发“success”

编辑:

我在这里挖了些东西。该错误似乎源于
handler.xhr.js

特别是在
parseResponse(xhr)
函数中

try{
   response = qq.parseJson(xhr.responseText);
}
catch(error) {
   log('Error when attempting to parse xhr response text (' + error + ')', 'error');
   response = {};
}
这似乎抛出了一个错误,因为响应是空的


有人知道什么是正确的回答吗?我正在考虑在这里添加一行,检查是否有空响应,然后手动插入正确的响应。

问题在于
parseResponse()
函数。它希望成功上传后返回JSON字符串
{“success”:true}

在我的例子中,Amazon返回一个带有204状态码的空响应。204状态代码

在我的案例中,我通过修改编辑中提到的部分修复了此问题,如下所示:

try {
            if(xhr.status == 204 && xhr.responseText.length == 0){
                response = qq.parseJson('{"success": true}');
            }
            else{
                response = qq.parseJson(xhr.responseText);
            }
}

希望这将有助于将来遇到此问题的其他人。

您使用的是什么版本的jQuery?我刚刚查看了源代码,jQuery对
204
状态代码有一个特例,但它看起来应该触发
success
我使用的是jQuery 1.9.1版本的jQuery,因为请求不是由jQuery发送或处理的。您对Fine Uploader的期望的评论对于上传POST请求是正确的。Fine Uploader目前能够发送两种不同类型的请求。一种类型,upload POST requests,需要有效的JSON响应,如文档中所述。这对于使用隐藏iframe中的表单上载文件的非文件API浏览器(IE9及更早版本)尤其重要。在这些情况下,无法确定客户端的响应代码。这项工作计划在不久的将来以本机方式支持直接上传到S3。请看。谢谢你让我知道。这是一个非常棒的插件。幸运的是,在这种情况下调试也很简单。嗨,Nikhil,我也遇到了同样的问题。一定要让我知道你把这个代码放在哪里了。在回调部分或其他地方??