2014-02-06 5 views
0

Я загрузил следующее web-based-face-detect-program и скомпилировал его, а мой компилятор не обнаружил синтаксических ошибок, однако при попытке загрузить изображение с приложением я получаю Cannot read property 'length' of undefined error. Я вообще не изменил приложение, поэтому не должно быть проблемы, и я довольно новичок в Javascript, чтобы я мог совершить ошибку новобранец. Heres функция JS код:Невозможно прочитать свойство «длина» неопределенной ошибки

function parse_response(res) { 
    var data = jQuery.parseJSON(res); 

    if (data.success == false) { 
     show_page(form); 
     show_message(data.msg); 
     return; 
    } 

    results 
     .find(".source-img").html("").end() 
     .find(".detected-faces").html("").append("<p>Found " + (data.images.length-1) + " faces:</p>"); 

    $.each(data.images, function(i, img) { 
     var el = '<img src="face-detect/' + img.src + '?r=' + Math.random() + '" alt="" />'; 
     results.find((i == 0 ? ".source-img" : ".detected-faces")).append(el); 
    }) 

    results.find(".source-img img").bind('click', function(e) { 
     var im = data.images[0]; 
     var el = '<img src="face-detect/' + im.src + '" width="' + im.width + '" height="' + im.height + '" alt="" />'; 
     $(".lightbox", results).find(".lightbox-content").html(el).end().lightbox("show"); 
    }); 

    show_page(results, actions); 
} 

Линия .find(".detected-faces").html("").append("<p>Found " + (data.images.length-1) + " faces:</p>"); является то, что вызывает ошибку. И Heres ошибки я получаю в консоли Chrome:

Uncaught TypeError: Cannot read property 'length' of undefined app.js:87 
parse_response app.js:87 
xhr.onreadystatechange app.js:65 

Остальная часть кода все ссылки GitHub если что-то Theres я пропустил. Так кто-то может объяснить мне, почему я получаю эту неопределенную ошибку и как я могу ее решить?

+1

Это означает, что ответ не имеет свойства "изображения". Используйте консоль разработчика браузера, чтобы проверить отправленный JSON. – Pointy

+0

@Pointy, как я могу это сделать? Я предположил, что это проблема, но поскольку это был не мой код, я думал, что это было в JSON. – user3144542

+0

Если вы используете Chrome, зайдите на вкладку «Сеть». Вы должны иметь возможность щелкнуть по используемой транзакции HTTP и увидеть заголовки и фактический ответ. – Pointy

ответ

0

Похоже, что объект данных не имеет свойства изображений. Перед строкой ошибки используйте функцию JSON.stringify(data) для проверки структуры объекта данных.

Вы можете использовать:

console.log(JSON.stringify(data)) 

Или:

alert(JSON.stringify(data)) 
+0

Ни один из них не показывает вывод JSON для меня, с 'alert' получает эту ошибку 'Uncaught ReferenceError: Alert is not defined' и консоль ничего не показывает, с той же ошибкой. – user3144542

Смежные вопросы