我在Vue中使用Dropzone.js。我正在尝试使用v-on:vdropzone-success挂钩服务器响应。如果uploadFile是单个块,那么一切都按预期工作但如果有多个块,则响应返回空。有人解决了这个问题吗?我错过了一些明显的东西吗谢谢!


 < dropzone ref =“myVueDropzone”
 id =“customdropzone”
 :选择= “dropzoneOptions” 
 V-上:vdropzone文件添加= “addFileTypeBorder” 
 V-上:vdropzone上传正在进行= “updateProgressBar” 
 V-上:vdropzone-除去文件= “removeFile” 
 V-上:vdropzone-成功= “addAnalysisId” 
 :包括定型= “假” >
 < /悬浮窗>
 代码>


 功能:
&#XA;&#XA;<代码> addAnalysisId:功能(文件,响应){&#xA; console.log(响应)&#xA; },&#xA;&#xA;&#xA;
以下是检查器中服务器响应的样子。每个块都作为单独的请求提交。显示最终请求。所有其他块响应块#。 &#xA; 检查员形象
&#xA;答案 0 :(得分:1)
我看到这是一个老话题,但是我碰到这里寻找答案。 因此,在库源代码中查找成功时不会返回第二个参数。仅文件的一个实例。
我发现在返回的对象中有一个xhr属性。在这里,您可以找到服务器的响应。因此,在您的情况下:
addAnalysisId: function(file){
console.log(file.xhr.response);
},
然后您可以根据需要解析响应并使用它。
答案 1 :(得分:0)
要检查块的响应,应将此代码添加到dropzone.js中: (搜索“ 200”,您会发现)
if (!(200 <= xhr.status && xhr.status < 300)) {
this._handleUploadError(files, xhr, response);
} else {
if (files[0].upload.chunked) {
files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr));
} else {
this._finished(files, response, e);
}
}
至:
if (!(200 <= xhr.status && xhr.status < 300)) {
this._handleUploadError(files, xhr, response);
} else {
//check response
var status=JSON.parse(response)['status'];
if(status==='error'){
this._handleUploadError(files, xhr, response);
} else {
if (files[0].upload.chunked) {
files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr));
} else {
this._finished(files, response, e);
}
}
}
_handleUploadError将再次上传失败的块。