代码如下,使用jquery ajax,在firefox里DEBUG可以看到responseText是有值的,但res和user都显示undefined.
var userInfo = $.get({
url : context + "/session",
async:true
});
 
var res = userInfo.responseText;
var user = eval("(" + userInfo.responseText + ")");
//alert(user.success);
if (user.success == false) {
$('#loginForm').css("display", "none");
};

解决方案 »

  1.   

    主要是你没搞清楚什么是异步,你用同步的方式本身就是个错误。
    $.get({
    url : context + "/session",
    success:function(userInfo){
        var res = userInfo;
        var user = eval("(" + userInfo + ")");
        //alert(user.success);
        if (user.success == false) {
            $('#loginForm').css("display", "none");
        };
    }
    async:true
    });
      

  2.   

    $.post({
    url : context + "/session",
    success:function(userInfo){
      var res = userInfo;
      var user = eval("(" + userInfo + ")");
      //alert(user.success);
      if (user.success == false) {
      $('#loginForm').css("display", "none");
      };
    }
    async:true
    });
    success是返回成功后的数据
      

  3.   

    同步和异步的问题导致的,如果改成
    async:false
    就OK了