'JSON'은 IE에서만 정의되지 않은 오류입니다.
WCF 서비스에 AJAX 콜을 발신하고 있는데 데이터를 전달할 때 JSON.stringify()를 사용합니다.
콜이 반환되어 FF, Chrome에서는 정상적으로 동작하지만 IE8에서는 동작하지 않는다.'JSON'이 정의되지 않았습니다.라는 오류가 표시된다.
제안사항
p.s. IE7에서도 작동했으면 합니다.
브라우저 간에 일관된 구현을 위해 json2를 사용합니다.
https://github.com/douglascrockford/JSON-js
IE9에 문제가 있었습니다.IE9에서 페이지를 "quirks" 모드로 렌더링하고 있었습니다.솔루션:<!DOCTYPE html>이것으로, 「quirks」모드에서 해방되어, 이 문제 뿐만이 아닙니다.
갱신하다
JSON3 라이브러리를 확인합니다.그것은 마법처럼 작용한다.
이게 도움이 됐으면 좋겠어요.
이게 도움이 됐으면 좋겠다.오래전에 몇몇 온라인 소식통으로부터 이걸 얻었어요.그들의 연결고리가 없어
참고 자료를 인용할 수 없어서 죄송합니다.
var JSON = JSON || {};
// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function(obj) {
var t = typeof (obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string")
obj = '"' + obj + '"';
return String(obj);
} else {
// recurse array or object
var n, v, json = [], arr = (obj && obj.constructor == Array);
for (n in obj) {
v = obj[n];
t = typeof (v);
if (t == "string")
v = '"' + v + '"';
else if (t == "object" && v !== null)
v = JSON.stringify(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
};
// implement JSON.parse de-serialization
JSON.parse = JSON.parse || function() {
var r = "(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)", k = '(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))';
k = '(?:"' + k + '*")';
var s = new RegExp(
"(?:false|true|null|[\\{\\}\\[\\]]|" + r + "|" + k + ")", "g"), t = new RegExp(
"\\\\(?:([^u])|u(.{4}))", "g"), u = {
'"' : '"',
"/" : "/",
"\\" : "\\",
b : "\u0008",
f : "\u000c",
n : "\n",
r : "\r",
t : "\t"
};
function v(h, j, e) {
return j ? u[j] : String.fromCharCode(parseInt(e, 16));
}
var w = new String(""), x = Object.hasOwnProperty;
return function(h, j) {
h = h.match(s);
var e, c = h[0], l = false;
if ("{" === c)
e = {};
else if ("[" === c)
e = [];
else {
e = [];
l = true;
}
for ( var b, d = [ e ], m = 1 - l, y = h.length; m = 0;)
delete f[i[g]];
}
return j.call(n, o, f);
};
e = p({
"" : e
}, "");
}
return e;
};
}();
IE가 기본적으로 지원하지 않기 때문에 IE에서 더 잘 작동하도록 하려면 파일 내의 JSON2 파서 코드를 가져옵니다.JSON.Stringify().
여기서 찾을 수 있습니다.
IE에서 호환성 보기 설정을 열고 "호환성 보기에 추가한 웹 사이트" 목록 상자에서 localhost를 제거합니다.그것은 나에게 효과가 있었다.
JQuery 2.x는 IE 6-8과 호환되지 않습니다.JQuery 2.0 베타 2 릴리즈 노트
JQuery의 이전 버전에 대한 질문인 것은 알고 있습니다만, 이 때문에 오류가 발생했습니다.JQuery 2.x와 API 호환 JQuery 1.x를 설치하고 다음 탐지 코드를 추가했습니다.
<!--[if lt IE 9]>
<script src="js/jquery-1.11.1.min.js"></script>
<![endif]-->
<!--[if gte IE 9]>
<script src="js/jquery.min.js"></script>
<![endif]-->
언급URL : https://stackoverflow.com/questions/5093582/json-is-undefined-error-in-ie-only
'source' 카테고리의 다른 글
| VB.NET의 유형 비교 (0) | 2023.05.20 |
|---|---|
| 쿼리 결과에서 결과의 랜덤 샘플 선택 (0) | 2023.03.21 |
| WooCommerce 기본 암호 보안 수준 변경 (0) | 2023.03.21 |
| 확장자가 없는 파일을 워드프레스로 업로드하시겠습니까? (0) | 2023.03.21 |
| 셀레늄을 어떻게 아약스 반응을 기다리죠? (0) | 2023.03.21 |