학습되지 않은 구문 오류:위치 0의 JSON에 예기치 않은 토큰 u가 있습니다.
체크아웃 시 및 개별 제품 페이지에서만 콘솔 로그에 다음 오류가 나타납니다.
VM35594:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse (<anonymous>)
at run (layout.min.js:9)
at app.min.js:1
at main.min.js:2
at Object.execCb (require.min.js:112)
at Module.check (require.min.js:56)
at Module.<anonymous> (require.min.js:72)
at require.min.js:11
at require.min.js:74
at each (require.min.js:3)
한 페이지 체크아웃 확장을 사용하고 있는데 비활성화해도 오류가 계속 나타납니다.(탭에서 리뷰를 옮겼기 때문에) 상품 페이지의 리뷰와 관계가 있다고 생각했습니다만, 그 변경을 취소해도 상품 페이지의 에러가 수정되지 않았습니다.
콘솔에서 다음을 시도해 보십시오.
JSON.parse(undefined)
얻을 수 있는 것은 다음과 같습니다.
Uncaught SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse (<anonymous>)
at <anonymous>:1:6
즉, 앱이 구문 분석을 시도하고 있습니다.undefined유효한 JSON이 아닙니다.
여기에는 두 가지 일반적인 원인이 있습니다.첫 번째는 존재하지 않는 속성(또는 엄밀한 모드가 아닌 경우에는 존재하지 않는 변수)을 참조하고 있을 가능성이 있다는 것입니다.
window.foobar = '{"some":"data"}';
JSON.parse(window.foobarn) // oops, misspelled!
두 번째 일반적인 원인은 애초에 JSON을 수신하지 못한 것입니다.이는 오류를 무시하고 요청을 전송해서는 안 될 때 클라이언트 측 스크립트가 원인일 수 있습니다.
서버측과 클라이언트측의 양쪽의 스크립트가 엄밀한 모드로 실행되고 있는 것을 확인하고, ESLint 를 사용해 그것들을 린트 합니다.이렇게 하면 오타가 없다는 확신을 얻을 수 있습니다.
@Seth Hallday @MinusFour 코멘트대로, 이 명령어는undefined변수.
추가해 보세요.if조건을 지정합니다.
if (typeof test1 !== 'undefined') { test2 = JSON.parse(test1); }
주의: 이것은 다음 항목에 대한 체크일 뿐입니다.undefined다른 모든 구문 분석 문제는 아직 처리해야 합니다
localStorage.clear()
그러면 저장된 데이터가 지워집니다.그런 다음 새로 고치면 작업이 시작됩니다.
앱에서 정의되지 않은 JSON 웹 토큰을 구문 분석하려고 합니다.로컬 스토리지의 잘못된 사용으로 인해 이러한 오작동이 발생할 수 있습니다.로컬 스토리지를 클리어합니다.
Google Chrome의 예:
- F12
- 어플
- 로컬 스토리지
- 모두 클리어
저는 페이지에 빈 컴포넌트가 있기 때문에 그런 일이 있었습니다.
<script type="text/x-magento-init">
{
".page.messages": {
"Magento_Ui/js/core/app": []
}
}
이 코드를 삭제하면 문제가 해결.
이것은, 다음의 조작에 의해서 발생합니다.messages이 페이지에 표시됩니다.페이지에는 윈도 메시지이벤트 및 오브젝트를 사용하여 페이지와 통신하는 여러 프레임이 있습니다.이들 중 몇 개는 다음과 같은 서드파티 서비스가 될 수 없습니다.cookieq쿠키 관리용, 또는cartwiree-com 통합 서비스
온메시지 이벤트를 처리하여 메시지의 발신지를 확인하고 그에 따라 JSON을 해석해야 합니다.
이 JSON 오브젝트로 .u
Uncaught SyntaxError: Unexpected token u in JSON at position 0그런 다음 다음과 같은 빠른 검사를 수행할 수 있습니다.
jsObj = JSON.parse(data)
데이터 - 데이터가 정의되지 않았는지 확인합니다.
data - 데이터가 유효한 JSON 문자열인지 확인합니다.
데이터 - 데이터가 원치 않는 공백으로 인해 손상되었는지 확인합니다.
data = data.trim(); // remove the unwanted whitespace jsObj = JSON.parse(data);data - 수신된 데이터가 올바른 인코딩 형식 "utf8", "utf16le", "tft2"를 사용하고 있는지 확인합니다.
fs.readFile(file, 'utf8', function(err, data) { ... }); fs.readFile(file, 'utf16le', function(err, data) { ... }); // le - little endian fs.readFile(file, 'ucs2', function(err, data) { ... }); // kind of 'utf16le'
이틀 동안 이 문제가 있었는데, 어떻게 고쳤는지 보여드릴게요.
에러가 발생했을 때의 코드는 다음과 같습니다.
request.onload = function() {
// This is where we begin accessing the Json
let data = JSON.parse(this.response);
console.log(data)
}
원하는 결과를 얻기 위해 변경한 내용은 다음과 같습니다.
request.onload = function() {
// This is where we begin accessing the Json
let data = JSON.parse(this.responseText);
console.log(data)
}
내가 한 은 변화를 준 이다.this.response로로 합니다.this.responseText
언급URL : https://stackoverflow.com/questions/46613243/uncaught-syntaxerror-unexpected-token-u-in-json-at-position-0
'source' 카테고리의 다른 글
| 절을 사용하여 문 업데이트 (0) | 2023.04.03 |
|---|---|
| 특정 연락처 7 폼의 wpcf7mailsent 타깃 (0) | 2023.04.03 |
| JSON 스키마를 사용하여 값을 문자열 또는 null로 지정합니다. (0) | 2023.04.03 |
| React에 업로드하기 전에 이미지 미리보기 가져오기 (0) | 2023.04.03 |
| 워드프레스 데이터베이스에서 외부 페이지로 미리 보기를 가져오는 방법 (0) | 2023.04.03 |