2016-05-10 2 views
1

Я продолжаю получать что-то, что я не могу найти, как решить. Когда я запускаю код, он сообщает мне «Uncaught TypeError: Невозможно прочитать свойство« длина »неопределенного». С большим количеством поиска и чтения я не нашел ответа, в котором упоминается, что мне нужно использовать длину значения с помощью команды for, но я попробовал несколько решений, ни одна из них не решила проблему, это код:Невозможно прочитать свойство 'length' undefined с json

function All() { 
$.ajax({ 
    type: "Get", 
    url: "http://xxxxx.callback=?", 
    dataType: "json", 
    success: function (Result)  
    { 
     $.each(Result, function (i, item) { 
     $('.div').append('<tr><td>' + Result.[i].Name + '</td></tr>');    

     }); 
    }, 
    error: function() { 
     console.log("Error, Something went wrong!"); 
    } 
}); 

}

+1

Почему вы просто не отлаживаете свой код и не инспектируете возвращенные данные, если это так, как ожидалось? – wero

ответ

1

из того, что я могу видеть, вы ожидали «актеров» массив является прямым свойством (т.е. переменной Result) «данные». Но тогда приведенные данные примера показывают, что между ними есть массив «движений». Следовательно, ошибка - внутренне функция .each будет пытаться выработать длину Result.actors ... но Result.actors не существует, поэтому она говорит, что она не определена.

У вас есть множество фильмов, поэтому вам нужно пройти через эти первые, а затем прокрутить актеров внутри них.

+0

Вам просто нужно изменить javascript, который вы используете для обработки результата. Что-то вроде этого (untested): '$ .each (Result.movies, function (i, movie) { $ .each (movie.actors, function (j, actor) { $ ('. Div'). (' '+ actor.actorName +''); }); }); ' – ADyson

+0

Это может быть, что вы должны рассмотреть "данные" объекта, а также. что-то вроде '$ .each (Result.data.movies ....' и т. д. Я не могу проверить его сам, очевидно. – ADyson

+1

Не уверен, что вы делаете неправильно, но я создал обработанный пример здесь https: //jsfiddle.net/Ldrao6L5/2/, используя данные, которые вы указали, и код обработки, который я использовал. Все, что отсутствует, это бит Ajax, я просто поместил данные непосредственно в переменную, но это не имеет значения , – ADyson

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