[debugging] Chrome : Uncaught SyntaxError : 예기치 않은 입력 끝

Chrome에서 내 페이지를로드 할 때 콘솔에 모호한 오류가 발생합니다.

잡히지 않은 구문 오류 : 예기치 않은 입력 끝

무엇이 원인인지 전혀 모르겠습니다. 이 오류를 디버깅하려면 어떻게해야합니까?



답변

이 특별한 오류는 . 대부분의 경우 JavaScript는 어떤 식 으로든 손상되었습니다. 예를 들어 a }또는 이와 유사한 것이 누락되었습니다 .

예를 들어, 이것은 “예기치 않은 입력 끝”을 생성합니다.

eval('[{"test": 4}') // notice the missing ]

그러나 문제의 근본 원인은 요청 JSON URL이 있습니다 것 같다 콘텐츠 형식text/html크롬은 분명히 사실 때문에 입력의 예상치 못한 말에 다음 결과가 포함 된 이미지 태그가되고 있음을 HTML로 구문 분석을 시도하는을 파싱되었습니다.

Content-Type 을 설정하여 text/plain문제를 해결해야한다고 생각하십시오.

그럼에도 불구하고 V8은 입력이 예기치 않게 종료 된 위치를 정확하게 알려주는 더 나은 작업을 수행 할 수 있습니다.


답변

Mozilla 용 Firebug를 사용해보십시오 }. 누락 된 위치가 표시됩니다 .

http://getfirebug.com/


답변

다른 비슷한 질문에 대한 내 사례 를 보십시오 .

필자의 경우 빈 JSON을 구문 분석하려고했습니다.

JSON.parse(stringifiedJSON);

즉, 다음과 같은 상황이 발생했습니다.

JSON.parse("");

답변

}JavaScript 코드에서 닫는 중괄호 문자 ( )를 생략하면이 오류가 발생 합니다. 버팀대가 올바르게 균형을 이루는 지 확인하십시오.


답변

기록을 위해이 오류의 다양한 원인을 찾으려고하는 사람. 빈 HTML5 데이터 속성

data-mydata = ''

오류도 발생합니다. 데이터 값이 널 문자열인지 확인하고 속성을 전혀 포함하지 않아야합니다. 이것은 스크립트 생성 HTML과 크게 관련이 있습니다.


답변

나를위한 문제 dataType: "json"는 HTTP 201 (작성)을 반환하고 요청 본문이없는 POST 요청에 대해 $ .ajax를 수행하고 있다는 것 입니다. 수정은 단순히 해당 키 / 값을 제거하는 것이 었습니다.


답변

JSHint 는 괄호가 없거나 구문이 잘못된 위치를 찾는 데 능숙합니다.