2014-11-05 2 views
-3

JSON 구문 분석 오류 : 예상 '}'나는 아약스 호출을 만드는 중이

$.ajax({ 
    url: 'url', 
    data: {}, 
    method: 'POST', 
    enctype: 'multipart/form-data', 
    dataType: 'json', 
    success: function(data){ 
     // handle success 
    }, 
    error: function(data, textStatus){ 
     //handle error 
    } 
}); 

여기 내 JSON 응답은 당신이 볼 수 있듯이, JSON 응답이 잘 형성되지

{ 
    person: { 
     name: 'John' 
    } 

입니다. 따라서 나는이 구문 분석 오류를 무시하고 내가 응답을받은 이후로 내가 실행을 계속 수있는 방법은

error: function(data, textStatus){ 

} 

에서 오류를

json parse error: Expected '}' 

를 얻을.

답변

6

파서 오류를 무시할 수 없습니다. 파서 오류로 인해 파싱 된 데이터가 없습니다. 데이터를 수정하십시오.

데이터를 서버 측에서 수정할 수 없다면 더 나은 데이터 소스를 얻으십시오. 만약 당신이 그것을 할 수없고 클라이언트 쪽에서 고쳐야 만한다면 을 수동으로 구문 분석하고 (jQuery 구문 분석을 사용하지 않도록 설정하십시오.) 나중에 누군가가 버그를 수정할 때 전체 시스템이 무너지기를 희망하십시오. 필연적이다). @squint에서

:

Don't request JSON or send JSON response headers and jQuery won't parse it.

이것이 의미하는 것은 당신이 dataType: 'json'와 JSON을 요청하는 것입니다. 대신 text을 사용하십시오. jQuery 문서에 대한 추가 정보 : http://api.jquery.com/jquery.ajax/

+0

그건 그가 묻는 것이 아닙니다. 그는 잘못된 JSON 일 때 데이터를 가져 오는 방법을 묻습니다. –

+0

대표자를 원하는 사람들에게 응답을 남깁니다. –

+1

@ 스퀘어 ?? 입력이 가치가있는 경우 답변을 추가해야합니다.이 경우는 분명합니다. 누가 명성에 신경을 쓰나요? – Brad

1

jQuery ajax 호출의 성공/오류 메서드는 메신저 - 메신저로 생각할 수 있습니다.

성공 메소드가 호출되면 서버는 사용자에게 우수한 데이터를 제공하며, 이는 계속되는 함수에서 처리합니다. 오류 메소드가 호출되면 서버가 잘못된 데이터를 제공합니다. 오류 메 시지 내에서 여전히 데이터를 처리 할 수는 있지만 문제는 데이터가 잘못되었다는 것입니다 (신뢰할 수없는 것으로 생각하면됩니다). 데이터가 신뢰할 수없는 경우 조정을 통해 코드 내에서 불량 데이터를 수정하는 것은 좋지 않은 프로그래밍 기법입니다.

프로그래머는 항상 좋은 데이터를 추구하고자합니다. 여기에서 요점은 원격 서버에서 좋은 데이터를 가져 와서 오류가 아닌 성공 방법이 호출된다는 것입니다. 이게 말이 돼?