jsp с ajax два одновременных запроса, получая только один ответ - PullRequest
1 голос
/ 14 октября 2010

У меня есть страница jsp, на которой я пытаюсь отправить несколько (два в настоящее время) ajax-запросов одновременно, но, похоже, я получаю только второй ответ. Этот парень точно описал мою проблему, но его решение не сработало для меня.

Вот мой код JS:


function createRequestObject(){
    var req;
    if(window.XMLHttpRequest){
        //For Firefox, Safari, Opera
        req = new XMLHttpRequest();
    } else if(window.ActiveXObject){
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else{
        //Error for an old browser
        alert('Browser error');
    }

    return req;
}

function sendRequest(method, url, d){
    var http = createRequestObject();
    var div = d;

    if(method == 'get' || method == 'GET'){
        http.open(method, url, true);

        http.onreadystatechange = function() { 
            if(http.readyState == 4 && http.status == 200){
                var response = http.responseText;
                if(response){
                    document.getElementById(div).innerHTML = response;
                }
            }
        };

        http.send(null);
    }
}

А вот как я называю этот код:

QC1 Status: <div id='qc1'>blah</div> 
<br />UAT2 Status: <div id='uat2'>blah2</div>

<a onclick="sendRequest('GET','index.jsp?qc1.properties=true','qc1'); " href="#">qc1</a>
<a onclick="sendRequest('GET','index.jsp?uat2.properties=true','uat2'); " href="#">uat2</a>
<a onclick="sendRequest('GET','index.jsp?qc1.properties=true','qc1'); sendRequest('GET','index.jsp?uat2.properties=true','uat2'); " href="#">both</a>

Когда я вызываю по одному, они работают как положено, но «обе» ссылки обновляются только со вторым запросом, хотя я знаю, что он выполняет код index.jsp для обоих.

РЕДАКТИРОВАТЬ: Хорошо, после исправления очевидной ошибки, на которую указывает BalusC, все работает. Исправлено и в этом посте.

1 Ответ

2 голосов
/ 14 октября 2010

Вы действительно отправляете два запроса на один и тот же URL и обновляете тот же div . Не следует ли первому перейти на qc1 и обновить qc1?

...