在IE9中使用JQuery ajax的奇怪问题

时间:2011-06-07 14:01:22

标签: javascript asp.net web-services jquery

我一直在使用一些java脚本,确切地说是JQuery,我在IE9中遇到了Ajax调用的一些问题,一切正常,在Firefox4中我没有错误,但是当我运行脚本时我在IE9控制台中没有错误得到以下错误

SCRIPT5009: 'JSON' is undefined 
FeedbackComment.js, line 49 character 17

代码非常简单和标准

$.ajax({
                type: "POST",
                url: defaults.WebServiceURL,
                data: "{ 'collectedFeedback':" + JSON.stringify(collectedFeedback) + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {

                }
            });

还有代表收集的反馈的场景和类背后的web服务。但问题似乎与他们无关。

我不确定发生了什么,有人可以帮助我。 提前致谢

3 个答案:

答案 0 :(得分:4)

只想添加一下,如果您在IE中并且默认为怪异模式或IE 7或更早版本的兼容模式,则JSON将不可用。

答案 1 :(得分:0)

任何时候我遇到IE 7,8或9的问题,我检查的第一件事是charset并确保它被强制为utf-8。对此非常挑剔。

要注意的另一件事是内容类型标题。确保它是正确的,并与您发回的响应相匹配。它也倾向于挑剔。

因此,例如,如果您正在制作ajax请求并期望获得json响应,则应将content-type设置为'application / json;字符集= UTF-8;”。如果您正在制作ajax请求并希望将html作为您的回复,那么您的内容类型应设置为'text / html;字符集= UTF-8;”

希望这可以帮助某人,因为它有我。

答案 2 :(得分:0)

我有这个问题。代码在某些页面上工作,而不是其他页面。感谢" Rocket Hazmat"上面,我能够识别出刚刚需要的页面:

<!DOCTYPE html>

在顶部。没有它,JSON对象就不存在了! IE的行为就像古代历史中的东西。难怪微软会在新浏览器上重新启动这个代码库。