IE 6中的jQuery Ajax会停止整个脚本

时间:2011-10-25 17:32:20

标签: jquery asp.net ajax json

我正在尝试使用一些jQuery代码用于Ajax,它在Firefox或IE 8+版本中运行良好,但我也需要在IE 6中工作,我有这个代码用于切换和使用Ajax

$(document).ready(function () {
        $("#S1").click(function 
            () {

            $("#t1").toggle("fast");
            $("#P1").toggle("fast");
            $("#S1").css("background-color", "White");
            var ID = $("#HiddenField1").attr("Value");
            var params = new Object();
            params.Key = ID;
            var myJSONText = JSON.stringify(params);
            $.ajax({
                type: "POST",
                url: "viewMessages.aspx/readen",
                data: myJSONText,
                contentType: "application/json",
                dataType: "json",

            });
        });
    });

当我尝试在IE6中运行这个时,它将无法工作,在调试器中我得到 第29行: 错误:预期的标识符,字符串或数字, (第29行将是我代码中Ajax函数的结尾)

我删除了一些代码以查看问题所在,所以我对此进行了分析:

$(document).ready(function () {
        $("#S1").click(function 
            () {

            $("#t1").toggle("fast");
            $("#P1").toggle("fast");
            $("#S1").css("background-color", "White");
            var ID = $("#HiddenField1").attr("Value");
            var params = new Object();
            params.Key = ID;
            var myJSONText = JSON.stringify(params);

        });
    });

这一个现在切换,但我得到了错误 Line21。 错误:JSON未识别,

你觉得问题出在哪里?如何在IE6中运行这样的代码? 我正在开发ASP.NET

1 个答案:

答案 0 :(得分:1)

删除数据类型后的额外逗号。

 $.ajax({
    type: "POST",
    url: "viewMessages.aspx/readen",
    data: myJSONText,
    contentType: "application/json",
    dataType: "json"//,

 });

此外,您不需要对数据组件进行字符串化,也不需要声明新的Object。 它只能是data:{'KEY':ID}, 要获得id,请使用:

$("#HiddenField1").val();