2013-03-09 2 views
2

jQuery 또는 스크립트로 인해 발생하는지 알 수 없습니다. 이것은 인터넷 익스플로러 9 오류주는 곳이다 :Internet Explorer 9에서 parseJSON 오류가 발생합니다.

parseJSON: function(data) { 
    // Attempt to parse using the native JSON parser first 
    if (window.JSON && window.JSON.parse) { 
     return window.JSON.parse(data); <<< this the "Invalid Character" err. 
    } 

이 내가 또한 여기 내 DOCTYPE을 체크 아웃 내 자바 스크립트 코드 내 연구에서

http://jsfiddle.net/fNPwh

입니다. 나는 또한 x-ua-compatible을 넣어 시도했지만 아무것도

IE9는 jQuery의 잘못된 문자 오류를주는 이유
<!DOCTYPE HTML> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
<meta http-equiv="content-style-type" content="text/css" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" > <!-- IE9 mode --> 
blabla 

을 변경하지 그래서 그들은 쿼크 모드에 대해 얘기했다? 파이어 폭스 나 웹킷이 아닙니다. 아, jQuery 1.9.1을 사용하고 있습니다.

+1

jQuery를 사용하고 있으므로'post()'요청의'dataType'을'json'으로 설정하고 jQuery가 파싱을 처리하도록하는 것이 어떻겠습니까? –

+0

예를 보여 줄 수 있습니까? 'x.name, x.page ...'와 같은 데이터를 사용하고 있습니다. ' –

+0

http://api.jquery.com/jQuery.post/ parseJSON을 사용할 필요가 없으므로 dataType을 살펴 보았습니다. 나는 IE가 왜 오류를 주 었는지 궁금해한다 : D –

답변

1

이것은 jQuery 라이브러리의 버그 인 것으로 보입니다. This post에는 수정 프로그램을 추가/수정할 코드가 들어 있습니다. 기본적으로 구문 분석을 시도하기 전에 null에 대한 검사를 이동하고 undefined에 대한 검사를 추가하십시오. 방법의 시작은 다음과 같습니다.

parseJSON: function(data) { 
    if (data === undefined) { 
     return data; 
    } 
    if (data === null) { 
     return data; 
    } 

    // Attempt to parse using the native JSON parser first 
    if (window.JSON && window.JSON.parse) { 
     return window.JSON.parse(data); 
    } 
... 

IE10 및 Chrome에서이 수정 사항을 확인했습니다.

관련 문제