jQuery - parseJSON에서 Uncaught SyntaxError: Unexpected token 오류날 때

이 것때문에 참 많이 고생했다.

혹시나 불러온 데이터의 형식이 문제인지 아니면 ajax로 불러올 때 설정을 잘못한건지 답을 찾기가 힘들었다.

그러던 중 조금씩 답이 보이기 시작했는데 바로 ajax로 불러온 데이터안에 구조중 빈공간이지만 내려쓰기 한 것이 있기 때문이였다.

즉 한줄로 써야하는 데이터를 html dom 구조로 보기좋게 만들다보니 이런 오류가 발생하는 것이였다.

대표적으로 대한민국 기상청 api 였다. ㅠㅠ 날씨 관련 인터렉션 만들다가 기상청 api로 애 좀 먹게 된 것이다.

해결 방법은 http://mugrammer.tistory.com/152 이 곳을 참고 했다. 역시나 같은 문제였고 답을 잘 알려주셨다.

 $.ajax({
    url: "외부 파일 경로",   
    type: 'GET',
    cache: false,
    success: function(data) {
        var myXML = rplLine(data.responseText);       
    },
    error:function(request,status,error){
        alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
    }
    });		
}

 위 코드는 외부에서 파일을 불러오는 모습이다. myXML 안에 데이터안의 글자를 수정하는 함수를 실행하고 리턴받게 된다.

function rplLine(value){
    if (value != null && value != "") { 
        return value.replace(/\n/g, "\\n");
    }else{
        return value;
    }
}
// rplLine

 함수를 이렇게 만들어 놓으면 ajax에서 데이터를 받고 나면 함수를 실행하고 넘어온 데이터 중에 내려쓰기 한 것을 변환하여 돌려주게 되는 것이다.

TOP