2011-07-29 2 views
0

AJAX 요청에 의해 반환 된 IE에서 일부 JSON을 구문 분석 할 때 자바 스크립트 예외를 추적하려고합니다. 일반적으로 JSON은 내 코드의 어딘가에서 JSON 형식 오류를 가정하지만,이 경우 JSON은 Chrome, FireFox & IE에서 정상적으로 파싱됩니다. 단, URL이 localhost 인 경우에만 IE의 경우에만 사용합니다. 내 위치가 정확히 동일한 위치를 가리키는 My-Laptop으로 URL을 변경하면 JSON은 IE에서 구문 분석에 실패하지만 Chrome 및 FireFox에서는 여전히 괜찮습니다.IE에서 JSON 구문 분석이 작동하지 않습니다. 그렇지 않으면 localhost에서 실패합니다.

JSON은 매우 간단합니다. 내가으로 생각할 수있는 모든 것을 확인했습니다

data = JSON.parse(data); 

:

data = "{ "ID" : 15, "Name" : "Hobart" } " 

json으로는로 해석되는 : 끝의 큰 따옴표 화장품 그래서 선은 아래 VS.Net의 디버거입니다 localhost의 응답과 my-laptop의 응답이 다르지만 아무 것도 발견 할 수 없는지 확인하십시오. IE가 서버 호스트 이름이 변경 될 때 JSON을 구문 분석하지 않기로 결정한 이유는 무엇입니까?

업데이트 : IE의 호환 모드가 설정된 상태에서 localhost 버전을 열면 JSON paring alsi가 실패합니다. 호환성 모드를 끄면 작동합니다.

+0

IE의 버전은 무엇입니까? [SSCCE] (http://sscce.org)? –

+0

8 .............. – sipwiz

답변

0

문제의 원인은 IE의 호환 모드입니다. 이 question의 주석은 IE 개발자 도구 창을 열어 주었고 웹 응용 프로그램은 IE7 호환 모드로 실행되고있었습니다. 나는 그것이 왜 그렇게하고 호환성 모드 버튼이 IE의 주소 표시 줄에 나타나지 않는지 모르겠다. 아직도 적어도 나는 문제가 무엇인지 알며 자바 스크립트의 디버깅보다 문제를 해결하는 것이 더 중요하다.

0

제공 한 JSON이 유효한 JSON 구조가 아닙니다. 모든 요소는 동봉 된 " "으로 묶어야합니다.

data = "{ "ID" : "15", "Name" : "Hobart" }" 

15는 이제 "15"입니다.

약간 약한 파서 및/또는 브라우저 조합은 사양에서 약간 벗어난 경우 더 나은 허용 오차를 가질 수 있습니다.

+0

JSON 형식을 수정했지만 오류를 수정하지 않았습니다. 이상한 점은 브라우저를 파싱하는 것과 동일한 브라우저 및 코드이며 서버 호스트 이름에 따라 오류가 발생한다는 것입니다. – sipwiz

관련 문제