日期:2014-05-16  浏览次数:20358 次

请教大神jquery里ajax的同步和异步的问题
最近使用struts2+jquery+json做实验遇到点问题,直接输入action地址数据返回正常,但是ajax死活就是success不了,后来把ajax设置为同步就可以success了,估计是struts2的数据还没生成,ajax就已经判断为error了。想请教各位,如果我确实是想异步接收数据,前台延迟点显示也无所谓,有没有办法?谢谢!
------解决方案--------------------
定时器  字数
------解决方案--------------------
延长ajax timeout时间试试
------解决方案--------------------
话说,这个异步的回调函数,写的有问题吗?

要按照这样的写法:

//这个回调的函数的绑定
xmlhttp.onreadystatechange=state_Change;
function state_Change()
{
if (xmlhttp.readyState==4)
  {// 4 = "loaded"
  if (xmlhttp.status==200)
    {// 200 = OK
    // ...our code here...
    }
  else
    {
    alert("Problem retrieving XML data");
    }
  }
}


如果这里是没有问题,那也可能是你设置的要求的数据格式什么的有些区别吧
http://www.w3school.com.cn/xml/xml_http.asp

像异步请求数据时,这个回调会一直监听,直到获取到数据,而timeout这个属性,是为了设置最长监听时间的,就是说,如果设置了这个属性,那么在这个指定的时间内,没有成功获取数据的话,则执行error的处理。

我觉的,你这里仔细检查下,然后认真看下,上面W3C的关于这个的介绍。