ajax 에러 부탁드립니다

ajax 에러 부탁드립니다

QA

ajax 에러 부탁드립니다

본문

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

답변을 작성하시기 전에 로그인 해주세요.
전체 1,019
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT