Javascript XMLHttpRequest onreadystatechanged not firing?

Javascript XMLHttpRequest onreadystatechanged not firing?

本文关键字:firing not onreadystatechanged XMLHttpRequest Javascript      更新时间:2023-09-26

我在网络服务器上托管的同一目录中有一个html文件和一个.txt文件。 html 文件包含以下代码:

<html>
<head>
<script>
window.onload = function() {
    receiveMessage();
}
function receiveMessage() {
    var xmlhttp = new XMLHttpRequest;
    xmlhttp.open("GET", "message.txt", true);
    xmlhttp.send();
    xmlhttp.onreadystatechanged = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            alert(xmlhttp.responseText);
        }
    }       
}
</script>
</head>
<body>
</body>
</html>

由于文本文件消息.txt包含"hello world",因此在收到响应时应弹出包含该消息的javascript警报框,但事实并非如此。 我做错了什么?

您要查找的属性onreadystatechange不是onreadystatechanged。最后没有d

请求和更改函数重新排序 onreadystate更改为onreadystatechange

function receiveMessage() {
    var xmlhttp = new XMLHttpRequest;
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            alert(xmlhttp.responseText);
        }
    }
    xmlhttp.open("GET","message.txt",true);
    xmlhttp.send();
}

将打开和发送呼叫放在 ONREADY 状态更改事件之后,如在 http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

<!DOCTYPE html>
<html>
	<head>
		<script>
			function loadXMLDoc()
			{
				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("myDiv").innerHTML=xmlhttp.responseText;
					}
				}
				xmlhttp.open("GET","demo_get.asp",true);
				xmlhttp.send();
			}
		</script>
	</head>
	<body>
		<h2>AJAX</h2>
		<button type="button" onclick="loadXMLDoc()">Request data</button>
		<div id="myDiv"></div>
	</body>
</html>