*Markus: (AJAX) Statuscode manchmal 0, wieso?

Beitrag lesen

Hallo,

ich habe ein Problem mit einem Ajax-Script. Das Script sendet den Request an ein PHP-Script, dass den Wert speichert.

  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"  
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
<meta http-equiv="Content-Style-Type" content="text/css" />  
<meta name="robots" content="follow" />  
<script type="text/javascript">  
   var request = false;  
   try {  
     request = new XMLHttpRequest();  
   } catch (trymicrosoft) {  
     try {  
       request = new ActiveXObject("Msxml2.XMLHTTP");  
     } catch (othermicrosoft) {  
       try {  
         request = new ActiveXObject("Microsoft.XMLHTTP");  
       } catch (failed) {  
         request = false;  
       }  
     }  
   }  
  
   if (!request)  
     alert("Error initializing XMLHttpRequest!");  
  
   function getCustomerInfo() {  
     var phone = document.getElementById("phone").value;  
     var url = "writephone.php?phone=" + escape(phone);  
     request.open("GET", url, true);  //true bedeutet asynchron  
     request.onreadystatechange = updatePage; //onreadystatechange = callback  
     request.send(null);  
   }  
  
   function updatePage() {  
    if (request.readyState == 4)  
       if (request.status == 200)  
            alert("Server is done!");  
      else if (request.status == 404)  
         alert("Request URL does not exist");  
      else  
         alert("Error: status code is " + request.status);  
  
   }  
  
  
</script>  
<title>Ajax-Test</title>  
</head>  
 <body>  
  <form method="post">  
   <p>Enter your phone number:  
    <input type="text" size="14" name="phone" id="phone"  
           onChange="getCustomerInfo();" />  
   </p>  
   <p>Your order will be delivered to:</p>  
   <p>Type your order in here:</p>  
   <p><textarea name="order" rows="6" cols="50" id="order"></textarea></p>  
   <p><input type="submit" value="Order Pizza" id="submit" /></p>  
  </form>  
 </body>  
</html>  

Das ist das PHP-Script, dass die Daten verarbeitet:

  
<?php  
   if (isset($_REQUEST['phone']))   {  
      $phone = $_REQUEST['phone'];  
  $myFile = "testFile.txt";  
  $fh = fopen($myFile, 'w') or die("can't open file");  
  fwrite($fh, "$phone\n");  
  fclose($fh);  
 }  
?>  

Wenn ich das Script für einige Zeit in Ruhe lasse, und dann eine Eingabe senden will, antwortet der Server mit Request-Status 0. Wieso ist das so?
Wenn ich es gleich darauf wieder ausprobiere, funktioniert es wieder. Woran liegt das?

Markus