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

ajax 为什么连续执行两次request,只返回了第二次的结果
 doAjax(url1, np_id, cate, folder);
 doAjax(url2, ap_id, cate, folder);

两次执行的request url不同,参数也不同,返回response接受的div也不同,但是执行完成后,onreadystatechange 只执行了一次,就是第二个url,请问怎么才能两次都执行,不同的response返回到不同的div里

------解决方案--------------------
创建不同的ajax实例,不要用同一个ajax对象,同一个对象IE只返回最后一个请求,firefox会出错
firefox下XMLHttpRequest重用时nsIXMLHttpRequest.send发生错误的解决方案
------解决方案--------------------
这个doAjax的设置应该是异步的。如果设是非异步方式,就可以执行完第一个再执行第二个了。
另一种方式是在异步的AJAX里面的返回完成事件中发起下一次的请求,这个需要修改结构,建立一个任务堆栈机制。
------解决方案--------------------
同上.
------解决方案--------------------
引用:
这个doAjax的设置应该是异步的。如果设是非异步方式,就可以执行完第一个再执行第二个了。
另一种方式是在异步的AJAX里面的返回完成事件中发起下一次的请求,这个需要修改结构,建立一个任务堆栈机制。

+1.建议在第一次ajax返回值时执行下一次请求。否则ajax改成同步,这真是情非得已的办法
------解决方案--------------------
doAjax里面的xmlhttprequest对象,不要采用全局变量
------解决方案--------------------
棂上说的对,如果你采用全局的xmlHttpRequest对象,就会这样的。
------解决方案--------------------
我也遇到了这个问题。请问你解决了么
------解决方案--------------------
第一个里面加上:async:false