我正在使用Blueimp的JQuery File Upload插件,因此在成功上传后,回调函数是:
$('#fileupload').fileupload('send', {files: filesList})
.success(function (result, textStatus, jqXHR) { console.log('success'); })
.error(function (jqXHR, textStatus, errorThrown) { console.log('error'); })
.complete(function (result, textStatus, jqXHR) {
console.log('complete: ' + JSON.stringify(result));
console.log(result.responseText.files[0].name);
});
所以我所看到的只是.complete
函数。第一个console.log
返回:
complete: {"readyState":4,"responseText":"{"files":[{"name":"video.mp4","type":"video/mp4","size":2348842}]}","responseJSON":{"files":[{"name":"video.mp4","type":"video/mp4","size":2348842}]},"status":201,"statusText":"Created"}
complete
在技术上是result
,其下是responseText
,其下是files
,这是一个数组,而name
是一个键/该数组中的属性。
因此,当我尝试console.log
result.responseText.files[0].name
时,它会显示Uncaught TypeError: Cannot read property '0' of undefined
。
有人可以找到什么问题吗? 谢谢!
答案 0 :(得分:3)
,
是一个字符串
您需要转换为对象:result.responseText
JSON.parse(result.responseText)
将起作用