문제

나는 어디서나 언급 할 수 없었던 오류가 발생하고 있습니다. ASP.NET을 사용하여 AJAX 지원 WCF 웹 서비스를 개발 중입니다. 내 asp.net 마스터 페이지에서u003Casp:ScriptManager> , JSON.JS 파일을 포함 시켰으며 JSON.org에서 Fresh를 복사했습니다. 페이지를 실행하면 JSON.JS의 첫 번째 코드 라인에서 실패 (2008 년 vs 2008은 JavaScript Exception을 포착합니다) (많은 주석에 따름)입니다.

JSON = JSON || {};

오류는 JSON이 정의되지 않았다고 말합니다.

Microsoft jscript 런타임 오류 : 'JSON'은 정의되지 않았습니다.

글쎄, 듀! 그렇기 때문에 라인이 정의 된 경우 테스트하고 빈 객체로 설정하는 경우! 정의되지 않아야합니다. 마지막으로 나는 정의되지 않은 변수에서 그러한 작업을 수행하는 것이 JavaScript의 오류가 아니라고 들었습니다.

누구든지 여기서 무슨 일이 일어나고 있는지에 대한 단서를 줄 수 있습니까? 어떻게 든이 문제를 일으키는 다른 곳에서 문제가 발생했다고 생각합니다. JavaScript 또는 ASP.NET에 대한 깊은 경험이 없으므로 설정에서 일반적인 gotcha가 누락 될 수 있습니다.

도움이 되었습니까?

해결책

당신은 사용해야합니다 JSON2.JS. 불쾌한 선이 변경되었습니다.

// Create a JSON object only if one does not already exist. We create the
// methods in a closure to avoid creating global variables.

if (!this.JSON) {
    this.JSON = {};
}

다른 팁

귀하의 페이지가 IE8 표준 모드로 렌더링되고 있는지 확인합니다. 문서가 Quirks 또는 IE7 모드로 렌더링되는 경우 this.JSON 정의되지 않았습니다.

IE8이 페이지에 다음 메타 태그를 포함하여 IE8 표준 모드로 렌더링하도록 강요 할 수 있습니다.

<meta http-equiv="x-ua-compatible" content="IE=8" />

언급했듯이 JSON2를 사용해야합니다.

그러나 오류는 글로벌 변수의 MS 처리에서 비롯됩니다. Window.json = Window.json || 시도하십시오 {}; 그때부터 JSON은 잘 작동해야합니다.

당신은해야 할 수도 있습니다 var JSON = JSON || {}; IE8의 JavaScript와 비슷한 문제를 겪었습니다.

Google지도 "StreetView"를 사용하는 것도 같은 문제가있었습니다. StreetView 창이 완전히 검은 색으로 변하고 상태 표시 줄에 아이콘이 오류를 나타냅니다. WebDev007이했던 것처럼 Divx를 비활성화했으며 문제가 해결되었습니다! Webdev, 당신은 천재입니다! 감사!

최근에 JSON UNDEFIDER JavaScript 오류를 받기 시작했으며 문제는 최근 DIVX 추가 켜기 때문이라는 것을 알았습니다. Divx 추가 기능은 또한 모든 HTTPS 참조와 HTTP 참조가없는 웹 페이지에서 안전한 컨텐츠 경고를 일으켰습니다 (웹 개발 중에 참조를 수정하기 위해 디스플레이 혼합 컨텐츠를 설정했습니다). Divx 추가 기능을 비활성화 한 후 JSON Undefined JavaScript 오류가 사라졌으며 잘못된 보안 컨텐츠 경고 팝업이 사라졌습니다.

나는 같은 오류가 있고 이미 JSON2를 사용하고있었습니다.

나를 위해 그것은 내가 추가 할 때 작동합니다 var 표현 전에 :

var JSON = JSON || {};
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top