ajax 에러 부탁드립니다

ajax 에러 부탁드립니다

QA

ajax 에러 부탁드립니다

답변 1

본문

function getDataJSON(url) {

    $.ajax({
type: "POST",
dataType: "json",
url: url,
data: { term: _term, from: _from, to: _to}
}).done(function(json) {
if (!json) {
alert("SYSTEM ERROR 1."); return; }
switch (json.code) {
case "200":

if(!json) { alert("SYSTEM ERROR 2."); return; }
else console.log("[developer] List loading complete.");

data = json.data;
_term = data.TERM;
_from = data.FROM;
_to = data.TO;

$("#from").val(_from);
$("#to").val(_to);

var tr_class = "tr1";
$('#list-table > tbody').empty();
$.each(data.LIST, function(i, item) {
$('#list-table > tbody:first').append(
$('<tr>').attr('class', tr_class)
.append($('<td>').html(item.CODE))
.append($('<td>').html(item.TYPE))
.append($('<td>').html(item.LEVEL))
.append($('<td>').html(item.MESSAGE))
.append($('<td>').html(item.CREATE_TM))
);
tr_class = tr_class == "tr1" ? "tr2" : "tr1";
});

break;
default : alert("SYSTEM ERROR default.");

}
});

} 

 

여기서에서 each부분의 코드 때문에 TypeError: Cannot read property 'length' of undefined​ 에러가 발생합니다.. 무슨 문제 인지 조언 부탁드려요 ㅠ 

이 질문에 댓글 쓰기 :

답변 1

리턴된 값의 LIST가 비어있거나 했던건 아닐까 싶은데요..

$.each() 앞에 if(data.LIST.length) 를 붙여보는건 어떨까요?

 

근본적으로는 ajax페이지에서 문제가 있을수도 있으니 그쪽도 검증해보셔야 할듯..

인자가 data: { term: _term, from: _from, to: _to} 이렇게 넘어가는데 사전에 전역으로 선언해두신 것이려나요? 데이터를 추출하는데 이 값들이 조건으로 들어가는거라면 ajax페이지에서 인자들이 제대로 된 값들이 잘 넘어왔는지도 체크해봐야겠군요.

 

제경우는 js에서 배열을 출력하려고

function print_array(val) {

var str = '';

for(var i in val) {

str += i+':'+val[i]+'\n'

}

alert(str);

}

이런걸 쓰는데 json도 출력은 됩니다. 다만 다차원이면 내부배열은 출력못해서 그부분만 다시 출력하는식으로 쓰지만 필요하다면 재귀형으로 다듬어서 보셔도 되고 뭐.. 그런식으로 리턴값도 확인해보시는게 좋겠네요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로