0

我继续运行以下代码,但不断弹出“连接错误”警报,这意味着我没有获得成功的响应代码。

有人看到以下脚本有什么问题吗?

function process(){

URL = document.getElementById("userInput").value;
var xmlhttp;

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp = new XMLHttpRequest();
 }

else {// code for IE6, IE5
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

 xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
    document.getElementById("Response").innerHTML=xmlhttp.responseText;
    alert("Successful connection!");
    }

 else {
    alert("Bad connection!");
    }
}

xmlhttp.open("GET", URL, true);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

}
4

1 回答 1

1

readyState 在到达状态 4(完成)之前会经过许多其他状态(打开、发送、接收标头、加载)。每次事件触发时,您都会收到错误连接警报,直到它成功。

您可能想要更多类似的东西:

if (xmlhttp.readyState==4) {
    if (xmlhttp.status==200) {
        document.getElementById("Response").innerHTML=xmlhttp.responseText;
        alert("Successful connection!");
    } else {
        alert("HTTP error: " + xmlhttp.status);
    }
}
于 2013-09-18T22:12:43.497 回答