AJAX: Как использовать два xmlHttpRequest параллельно в одной функции? - PullRequest
2 голосов
/ 29 августа 2010

Как мне это сделать?

function(id,id2){

    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
         xmlhttp=new XMLHttpRequest();
    } else { // code for IE6, IE5
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

Первый запрос:

   xmlhttp.open("GET", "http://example.com/ajax.php?id="+id, true);

   xmlhttp.send();

Второй запрос:

   xmlhttp.open("GET", "http://example.com/ajax2.php?id2="+id2, true);

   xmlhttp.send();

}

Потому что таким образом не работает.

Я хочу сделать это в простом javascript, поэтому, пожалуйста, не публикуйте ответы с помощью jQuery или какой-либо библиотеки и т.д. Спасибо

Ответы [ 2 ]

8 голосов
/ 29 августа 2010

Должно работать, если вы создаете новый объект xmlhttp.В настоящее время вы пытаетесь повторно использовать тот же объект, который уже выполняет запрос, поэтому он не будет работать.

1 голос
/ 30 августа 2010

если вы ищете классический стиль JavaScript, вы можете использовать его следующим образом. Но используйте jQuery, поскольку он прост и понятен. Следует отметить, что «xmlhr» должен находиться в области видимости метода (callAjax).

function callAjax(url) {
        var xmlhr;

        if (window.XMLHttpRequest) {
            xmlhr = new XMLHttpRequest();
        } else {
            xmlhr = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhr.onreadystatechange = function () {
            if (xmlhr.readyState == 4 && xmlhr.status == 200) {
                alert(xmlhr.responseText);
            }
        }
        xmlhr.open("GET", url, true);
        xmlhr.send();
    }

    function myFunction(id1, id2) {
        callAjax("http://example.com/ajax2.php?id2=" + id1);
        callAjax("http://example.com/ajax2.php?id2=" + id2);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...