在函数Ajax2中,楼主采用了异步调用ajax,所以,当代码执行到"return ajax1"时,xml.onreadystatechange还没激发,那么ajax1肯定是undefined。
而比较常用的做法是在onreadystatechange中的激发状态是“返回成功”时调用其他函数来处理返回结果。你可以想像成,当“返回成功”时,激发一个事件,这个事件用来处理结果。
之前没遇到过类似问题,也没试过,现在我去测一下,有问题可以给我留言
经测试,楼主这样写应该是不可行的,因为你不能保证在return ajax1时, xml.onreadystatechange已经激发并完成ajax1=xml.responseText;的动作,如果楼主能找出控制xml.onreadystatechange状态的办法还差不多,否则就只能交由系统去判断了.
是这样的,回调函数中尽管你申明的是匿名函数,但他内部的ajax1变量和你ajax2中声明的ajax1是两个独立的变量,除非你把这个ajax1提到所有的函数外面作为一个全局变量,否则你在回调函数中的改变是影响不了外面的。