我正在对WCF服务进行AJAX调用,当我传入数据时,我使用JSON.stringify()
呼叫返回并在FF中正常工作,& Chrome,但不是IE8。我收到一个错误:“JSON”未定义
建议?
P.S。我也想在IE7中使用它
答案 0 :(得分:54)
使用json2实现一致的跨浏览器实现。
答案 1 :(得分:27)
我遇到了IE9的问题。 IE9以“怪癖”模式呈现我的页面,解决方案只是添加<!DOCTYPE html>
。这让我走出了“怪癖”模式,我肯定不仅仅是这个问题!
答案 2 :(得分:18)
检查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;
};
}();
答案 3 :(得分:1)
使IE中的函数更好地导入文件中的JSON2解析器代码,因为IE默认情况下不支持JSON.Stringify()
。
可以找到here
答案 4 :(得分:0)
在IE中打开兼容性视图设置,并从列表框中删除“已添加到兼容性视图的网站”中的localhost。 它对我有用。
答案 5 :(得分:0)
JQuery 2.x不再与IE 6-8兼容。 JQuery 2.0 beta 2 release notes
我知道主要问题是关于旧版本的JQuery,但这导致了我的错误。我安装了JQuery 1.x,它与JQuery 2.x API兼容,并添加了以下检测代码:
<!--[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]-->