Uncaught TypeError: Невозможно использовать оператор "in" для поиска "16" в

У меня есть эти объекты JSON в публикации ответ действия:

{"status":"ok","filename":"538f057493d55.png"}
{"status":"ok","filename":"538f057493d11.png"}

Мне нужно получить значение имени файла и добавить его к некоторому скрытому вводу, поэтому я делаю это:

$.post(url, {image: src}).done(function(data){
    var status = data.status;
    if (status === "ok"){
        var filename = data.filename;
        $.each(filename, function(key, value){
            var photosInput = $('#images');
            photosInput.val(value);
        });
    } else {
       // error
    }
});

публикация работает хорошо, но при получении значения имени файла отображается какая-то ошибка: Uncaught TypeError: Cannot use 'in' operator to search for '16' in 538f057493d55.png, Спасибо за помощь.

1 ответ

Прямо сейчас, $.each(filename,... перебирает буквы вашего имени файла.

Но вам, кажется, не нужна итерация. Похоже, ты просто хочешь

$.post(url, {image: src}).done(function(data){
    var status = data.status;
    if (status === "ok"){
        $('#images').val(data.filename);
    } else {
       // error
    }
});

Если data является массивом, и вы хотите добавить все имена файлов для ввода, вы можете сделать

$('#images').val(data.map(function(f){ return f.filename }).join(' '));
Другие вопросы по тегам