我编写了如下的Ajax函数。
它无法正常工作。如果我删除了xmlhttp.status==400
,那么它正在运行。我在这个例子中犯了什么错误?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<script type="text/javascript">
function getAjax()
{
if (window.XMLHTTPRequest)
{
xmlhttp=new XMLHTTPRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.xmlHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==400)
{
document.getElementById('mydiv').innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","testajax.txt",true);
xmlhttp.send(null);
}
</script>
</head>
<body>
<input type="button" value="Get content" onclick="getAjax()"><br>
<div id="mydiv"></div>
</body>
</html>
答案 0 :(得分:1)
“另一个简单的用途是查找是否存在网址, 在HTTP中,HEAD和GET请求都返回了各种状态代码, 200表示成功,404表示失败,其他表示其他事情。 有关完整说明,请参阅HTTP status codes。“
使用xmlhttp对象的status属性为您提供此状态
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) alert("URL Exists!")
else if (xmlhttp.status==404) alert("URL doesn't exist!")
}
答案 1 :(得分:0)
正确的“if
”条件应该是: -
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById('mydiv').innerHTML=xmlhttp.responseText;
}
为了更深入的理解,你可以看到这个很好的&amp;来自IBM Technical Library的Mastering AJAX的详细文章。此外,您可以轻松使用jQuery.ajax()库的jQuery API。
希望它有所帮助。
答案 2 :(得分:0)
将400
更改为200
。那是HTTP status code。 200
表示OK
。 400
表示Bad Request
。