这是生成JSON的方法string json = "";
            StringBuilder sb = new StringBuilder(json);
            UserInfo ui = ub.GetUserBLL(uid);
            string[] addlist = GetAddList(ui.Address);
            sb.Append("{\"user\":{");
            sb.Append("\"uname\":\""+ui.Username+"\",");
            sb.Append("\"limit\":\"" + ui.Limit + "\",");
            sb.Append("\"credits\":\"" + ui.Credits + "\",");
            sb.Append("\"phone\":\"" + ui.Phone + "\",");
            sb.Append("\"name\":\"" + ui.Realname + "\",");
            sb.Append("\"add\":[");            if (addlist.Length > 0)
            {
                for (int i = 0; i < addlist.Length - 1; i++)
                {
                    sb.Append("\"" + addlist[i].Trim() + "\",");
                }
            }
            sb.Append("\"" + addlist[addlist.Length-1].Trim() + "\"");
            sb.Append("]");
            sb.Append("}}");
            return sb.ToString();这是生成的JSON
{"user":{"uname":"asdf","limit":"0","credits":"10","phone":"13850039614","name":"asdf","add":["asdf1","asdf2","asdf","asdf4","asdf5"]}}这是JQUERY的获取JSON的方法
function getUserJson() {
    $.getJSON("ashx/GetUserInfo.ashx", function(u) {
        try {
                    $("#login_c").hide();                    $("#login_user").show();                    $("#login_user").addClass("login_c");                    $("#login_user").html("欢迎您:[" + u.user.uname + "]     当前积分:[" + u.user.credits + "]<span onclick=\"LoginOut()\">[退出]</span>");                    $("#ordername").val(u.user.name);                    $("#orderphone").val(u.user.phone);
            
        } catch (err) {
            document.write(err);
        }
    });
 }用上面这个方法,在IE下根本就不会执行getUserJson()这个方法,在FF3.X下完全正常改用下面这个方法
function getUser() {
    $.ajax({
        type: "POST",
        url: "ashx/GetUserInfo.ashx",
        dataType: "text",
        success: function(back) {
            if (back != null) {
                var j = back.toString().replace("\r\n", "");
                var u = eval("(" + j + ")");
                $("#login_c").hide();                $("#login_user").show();
                $("#login_user").html("<img src=\"../skin/default/loading.gif\" />");
                $("#login_user").addClass("login_c");
                $("#login_user").html("欢迎您:[" + u.user.uname + "]     当前积分:[" + u.user.credits + "]<span onclick=\"LoginOut()\">[退出]</span>");
                $("#ordername").val(u.user.name);
                $("#orderphone").val(u.user.phone);
            }
        }
    });
}在IE浏览器中 var u = eval("(" + j + ")");这一句说是“语法错误。”
请问这是什么问题?

解决方案 »

  1.   

    跟踪一下back的值,或将dataType设成json试试
      

  2.   

        var back = '{"user":{"uname":"asdf","limit":"0","credits":"10","phone":"13850039614","name":"asdf","add":["asdf1","asdf2","asdf","asdf4","asdf5"]}} ';
        var j = back.toString().replace("\r\n", "");
        var u = eval("(" + j + ")");
        alert(u.user.uname);
        alert(u.user.credits);
        alert(u.user.name);
        alert(u.user.phone);调试下back的值,如果为{"user":{"uname":"asdf","limit":"0","credits":"10","phone":"13850039614","name":"asdf","add":["asdf1","asdf2","asdf","asdf4","asdf5"]}} 能正常运行在if (back != null)加debugger;进行调试
      

  3.   

    getUser() 的dataType 改成 json 解决问题,
    但是 getJson 怎么不行你?G了一下,发现也有人有这个问题