Вызов функции Ajax - PullRequest
       1

Вызов функции Ajax

4 голосов
/ 15 декабря 2010

Я написал функцию 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 ]

1 голос
/ 15 декабря 2010

"Другое простое использование - обнаружение URL-адреса, в HTTP есть различные коды состояния, возвращаемые запросами HEAD и GET, 200 означает успех, 404 означает сбой, а другие означают другие вещи. См. HTTP коды состояния для полного объяснения. "

с использованием свойства status объекта xmlhttp предоставляет вам этот статус

         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

0 голосов
/ 15 декабря 2010

Измените 400 на 200.Это код состояния HTTP .200 означает OK.400 означает Bad Request.

0 голосов
/ 15 декабря 2010

Правильное условие "if" должно было быть: -

if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
    document.getElementById('mydiv').innerHTML=xmlhttp.responseText;            
}

Для более глубокого понимания вы можете увидеть эту хорошую и подробную статью из Мастеринг AJAX Технической библиотеки IBM.,Кроме того, вы легко могли бы использовать jQuery.ajax () API библиотеки jQuery .

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...