自己看源代码alert语句是什么,如果不是json对象,而是一般的字符串,要用引号扩起
而且你的session是不是在/u/login设置的,这样第一次请求session是没有值的,你的/u/login应该返回字符串给客户端,客户端接收后赋值
又是一个没有搞清楚session在哪里的代码。
教科书写明,session是服务器端的对象,也就是说,在浏览器端是取不到session的,也就是说,在浏览器端执行的JS代码是不可能调用到服务器端的session对象。
所以,你那个alert()是后执行的,在alert执行时,session已经执行完毕,由于u是一个对象,在你使用<%=的方式进行输出时,自动调用toString()方法,如果你没有重写过这个方法,应该是得到一个“entity.Users@ab23CF”的字符串,之后代码被送到了浏览器端,这个时候alert()在事件触发的时候执行了。你会看到弹出一个警告框,而警告框中显示的文字就是“entity.Users@ab23CF”
那么你想要的User对象在哪里呢?success:function(result)。你有没有看到result?你有没有看到result?你有没有看到result?重要的事情说三遍。
这才是你ajax得到的服务器返回值!如果JS可以直接就获取session,那ajax也就用不着发明的了,直接获取多方便,为啥还要绕七绕八的搞ajax呢?
不好意思,我回答这个问题的时候带了情绪,得罪之处请原谅。希望对你有帮助。
对了,你登录的“录”写成“陆”了,这样看上去太不专业了。
还有一点,我又想了想,你那个警告框里也有可能出现“null”字样。还是因为session是先执行的,这时你还没有登录,session里也就没有对象,有时候浏览器回转的时候会不更新js的代码,就会出现显示null的情况。
这里是获取不到的,你的返回值是result,在ajax里面只能获得你方法return 的返回值,你只能把你想要操作的user属性用字符串或json返回。