这是我的代码
<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","ajax_info.txt",true);
xmlhttp.send();
}
</script>
答案 0 :(得分:7)
当您发出AJAX请求时,浏览器会向给定地址发送HTTP请求。请求另一端的服务器响应,并将数据返回给您的浏览器。这与导航到新网页时发生的情况相同。
使AJAX与众不同的是,它不是导航到新页面并直接显示它,而是将响应数据包含在JavaScript变量中。然后可以使用JavaScript操作此变量并将其动态插入页面。
就是这样!唯一可能对你来说有点神秘的是这一行:
xmlhttp.onreadystatechange=function()
这样做是将事件附加到实际执行请求的xmlhttp
对象。每次对象的“就绪状态”发生变化时,事件都会触发。 “就绪状态”是请求状态的状态指示符。 AJAX请求通常分为五个阶段:
在请求达到“完成”阶段之前,您的数据无法使用。通过检查就绪状态代码4,您有效地检查请求是否已完成。请注意,在某些浏览器中,您还可以使用上面定义的常量检查状态,但因为常量并非在所有浏览器中普遍定义(Opera是一个值得注意的例外),但最好还是坚持检查数字代码。 / p>
值得一提的是,并非所有就绪状态都必须可以从所有浏览器访问。代码4几乎是一个安全的赌注,但一些早期的代码并不总是实现。本文对这个主题进行了更深入的探讨:http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/。
您与就绪状态代码一起检查的另一件事是HTTP状态代码。您检查它是否等于200,因为代码200意味着请求正常执行。当请求未成功完成时,其他代码将返回给您。可在此处找到HTTP代码列表http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html。