2010-12-15 14 views
4

Ich schrieb die Ajax-Funktion wie folgt.Ajax Funktion aufrufen

Es funktioniert nicht richtig. Wenn ich die xmlhttp.status==400 entferne, dann funktioniert es. Welchen Fehler habe ich in diesem Beispiel gemacht?

<!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> 

Antwort

1

„Eine weitere einfache Anwendung findet, wenn eine URL existiert, in HTTP gibt es verschiedene Statuscodes sowohl von HEAD zurück und GET-Anfragen, 200 Erfolg bedeutet, 404 Ausfall bedeutet, und die anderen bedeuten andere Dinge. Eine vollständige Erklärung finden Sie unter HTTP status codes. "

den Status-Eigenschaft des xmlhttp-Objekt bietet Ihnen diesen 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

0

Die richtige "if" Zustand gewesen sein sollte: -

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

Weitere tieferes Verständnis, können Sie diese schöne & ausführlichen Artikel aus IBM Technical Library Mastering AJAX sehen. Außerdem hätten Sie die jQuery.ajax()-API der jQuery-Bibliothek problemlos verwenden können.

Ich hoffe, es hilft.

+0

mit xmlhttp.status == 200 auch nicht .. Sir – Mihir

+0

@Mihir löschte geben - Wenn möglich, versuchen Sie es mit der jQuery AJAX API. Es ist das beste mit kleinen Details Anforderungen. –