我正在尝试同时进行 2 个(或更多)ajax 调用。我不想使用 jQuery,只使用纯 JavaScript。
大多数时候,它有效。data1 将从 sample.com/ajax1 输出数据,data2 将从 sample.com/ajax2 输出数据,但有时(10 中的 1)第二个 AJAX 调用将显示第一个 AJAX 调用的结果。
为什么会这样?两个 AJAX 请求都从同一个域请求数据,但来自不同的 URL。有什么办法可以防止这种行为?
这是脚本:
// First AJAX
var xmlhttp1;
// Second AJAX
var xmlhttp2;
if (window.XMLHttpRequest) {
xmlhttp1 = new XMLHttpRequest();
} else {
xmlhttp1 = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp1.onreadystatechange = function() {
if (xmlhttp1.readyState == 4 && xmlhttp1.status == 200) {
data = JSON.parse(xmlhttp1.responseText);
console.log('data1: ' + data);
}
}
xmlhttp1.open("GET", "http://sample.com/ajax1", true);
xmlhttp1.send();
if (window.XMLHttpRequest) {
xmlhttp2 = new XMLHttpRequest();
} else {
xmlhttp2 = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp2.onreadystatechange = function() {
if (xmlhttp2.readyState == 4 && xmlhttp2.status == 200) {
data = JSON.parse(xmlhttp2.responseText);
console.log('data2: ' + data);
}
}
xmlhttp2.open("GET", "http://sample.com/ajax2", true);
xmlhttp2.send();