Chrome에서 내 페이지를로드 할 때 콘솔에 모호한 오류가 발생합니다.
잡히지 않은 구문 오류 : 예기치 않은 입력 끝
무엇이 원인인지 전혀 모르겠습니다. 이 오류를 디버깅하려면 어떻게해야합니까?
<script>https://example.com/a.js</script>
했고 그것이 있어야합니다<script src="https://example.com/a.js"></script>
Chrome에서 내 페이지를로드 할 때 콘솔에 모호한 오류가 발생합니다.
잡히지 않은 구문 오류 : 예기치 않은 입력 끝
무엇이 원인인지 전혀 모르겠습니다. 이 오류를 디버깅하려면 어떻게해야합니까?
<script>https://example.com/a.js</script>
했고 그것이 있어야합니다<script src="https://example.com/a.js"></script>
답변:
이 특별한 오류는 v8. 대부분의 경우 JavaScript는 어떤 식 으로든 손상되었습니다. 예를 들어 a }
또는 이와 유사한 것이 누락되었습니다 .
예를 들어, 이것은 "예기치 않은 입력 끝"을 생성합니다.
eval('[{"test": 4}') // notice the missing ]
그러나 문제의 근본 원인은 요청 JSON URL이 있습니다 것 같다 콘텐츠 형식 의 text/html
크롬은 분명히 사실 때문에 입력의 예상치 못한 말에 다음 결과가 포함 된 이미지 태그가되고 있음을 HTML로 구문 분석을 시도하는을 파싱되었습니다.
Content-Type 을 설정하여 text/plain
문제를 해결해야한다고 생각하십시오.
그럼에도 불구하고 V8은 입력이 예기치 않게 종료 된 위치를 정확하게 알려주는 더 나은 작업을 수행 할 수 있습니다.
Mozilla 용 Firebug를 사용해보십시오 }
. 누락 된 위치가 표시됩니다 .
ctrl+shift+i
이 알려줄 것입니다.
다른 비슷한 질문에 대한 내 사례 를 보십시오 .
필자의 경우 빈 JSON을 구문 분석하려고했습니다.
JSON.parse(stringifiedJSON);
즉, 다음과 같은 상황이 발생했습니다.
JSON.parse("");
기록을 위해이 오류의 다양한 원인을 찾으려고하는 사람. 빈 HTML5 데이터 속성
data-mydata = ''
오류도 발생합니다. 데이터 값이 널 문자열인지 확인하고 속성을 전혀 포함하지 않아야합니다. 이것은 스크립트 생성 HTML과 크게 관련이 있습니다.
data-setup='{"example_option":true}'
모든 것이 훌륭하게 작동했습니다.
나를위한 문제 dataType: "json"
는 HTTP 201 (작성)을 반환하고 요청 본문이없는 POST 요청에 대해 $ .ajax를 수행하고 있다는 것 입니다. 수정은 단순히 해당 키 / 값을 제거하는 것이 었습니다.
Content-length
더 헤더 지정 응답 포함, 아니면 서버가 어떻게 든 잘못된 HTML을 보내는 것보다 바이트.