从json获取数据时出错

时间:2018-01-19 14:13:13

标签: javascript jquery json

我有一个Jquery Drop上传表格所有工作正常,但当我试图从数据库获取数据与json工作,但我不知道为什么它显示错误。请在下方查看更多信息

我的错误

jQuery-2.1.4.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"name":"1.xlsx","size":34838},{"name":"485138_1.xlsx","size":34838}]
at s (jQuery-2.1.4.min.js:2)
at Function.each (jQuery-2.1.4.min.js:2)
at Object.success (misupload.js:111)
at j (jQuery-2.1.4.min.js:2)
at Object.fireWith [as resolveWith] (jQuery-2.1.4.min.js:2)
at x (jQuery-2.1.4.min.js:4)
at XMLHttpRequest.<anonymous> (jQuery-2.1.4.min.js:4)

这是我的js代码

$.get('/resumes/mis-upload-get-action?_act=bulk', function(data) {
    $.each(data, function(key,value){
        var mockFile = { name: value.name, size: value.size};
        thisDropzone.options.addedfile.call(thisDropzone, mockFile);
        totalFiles += 1;
        completeFiles += 1;
    });
    $('.btn-proceed .badge').html(totalFiles);
});

这是我的服务器端json代码

[{"name":"1.xlsx","size":34838},{"name":"485138_1.xlsx","size":34838}]

请帮帮我

2 个答案:

答案 0 :(得分:1)

该错误意味着jQuery正试图迭代它无法迭代的东西 - 在这种情况下是一个字符串。您需要解析数据,以便jQuery迭代它。

您可以使用$.getJSON(jQuery会自动将数据解析为对象)或使用JSON.parse(data)来执行此操作。

答案 1 :(得分:-1)

尝试使用.emit()

$.get('/resumes/mis-upload-get-action?_act=bulk', function(data) {
    $.each(data, function(key,value){
        var mockFile = { name: value.name, size: value.size};
        thisDropzone.emit("addedfile", mockFile);
        thisDropzone.emit("complete", mockFile);
        totalFiles += 1;
        completeFiles += 1;
    });
    $('.btn-proceed .badge').html(totalFiles);
});

如果有帮助请告诉我