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

多个Ajax 请求冲突的问题
本帖最后由 purifypipi 于 2013-12-07 11:22:59 编辑
我现在遇到这样一个情况
有两个Ajax,当我发送第一个Ajax请求的时候
可以顺利激活后台的servlet,后台servlet也能返回数据到jsp页面上

但当我想发送第二个Ajax的时候,第二个Ajax可以激活后台的servlet
后台也能打印出数据,但是前台的jsp页面接收不到反馈的数据

这两个Ajax请求, url用的是同一个validate2.do? 只不过是每次带的参数不一样而已
请问是为什么呢? 1.是浏览器的问题? 2.还是浏览器缓存的问题,第二个Ajax请求和第一个冲突勒?
                 3.我还查到有人说在url后面再加个随机数 我也试了 没效果
我还特意把每次新创建的XMLHttpRequest作为局部变量
具体代码如下:
<script>    
    function doclick1() {
        var test, test2;
        var url = "validate2.do?id=" + test + "&id2=" + test2;
        var req; //局部变量
        if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        req.open("GET", url, true);
        req.onreadystatechange = function () { callback('doclick1', req); }
        req.send(null);
    }    function doclick2() {
    
        var td = event.srcElement;
        
        var url = "validate2.do?id3=" + td.id + "&id4=" + td.name;
        var req; //局部变量
        if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        req.open("GET", url, true);
        req.onreadystatechange = function () {
            callback('doclick2', req);
        }
        //send函数发送请求
        req.send(null);
    }
    function callback(p, req) {

        if (req.readyState == 4 && (0 == req.status || req.status == 200)) {
        &