Ajax函数调用

时间:2010-12-15 05:29:20

标签: ajax

我编写了如下的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>

3 个答案:

答案 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!")

          }

http://www.jibbering.com/2002/4/httprequest.2004.9.html

答案 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 code200表示OK400表示Bad Request