登录逻辑:
检查是否是第一次登录,如果是则直接执行登录代码,否则执行登录验证代码。
登录订餐系统首先确定获取服务器时间,用来登录成功的时候判断现在是否可以订餐。
然后验证用户账户及密码是否正确,如果正确跳转到订餐界面,订餐界面的URL是包含获取到的服务器时间的。
问题所在:
原来的代码时写了两个ajax分别获取时间和进行验证。但是ajax是异步JavaScript和xml所以当执行第getDate方法的时候也在执行test方法,但是如果test方法先执行完毕这时候传到订餐界面的URL上的时间是undefined,就会导致一系列错误的提示。
解决方案:
方案一:嵌套ajax,把getDate方法执行成功的时候再调用textajax。
方案二:把前一个必要的ajax设置为同步,即 async:false,
总结:ajax虽然好用但是需要逻辑判断前一个的返回值是否下一个ajax会用到,如果用到的话就需要考虑到底用哪个解决方案更合适了。