PHP返回状态0

时间:2011-02-15 16:50:40

标签: php

我遇到了AJAX的问题,PHP返回的状态代码为0.我在本地域上运行它,我不明白为什么它不会返回任何内容。它写入bar.txt,但它不会向AJAX请求返回任何内容,状态代码为0。

Ajax请求:

function sendRequestToButler(requestText, callback) {
  try {
    var request = new XMLHttpRequest();
    request.onreadystatechange = function() {if(request.readyState == 4 && request.status == 200) {callback(request);} else {alert("Error: AJAX: readyState: " + request.readyState + " status: " + request.status);}};
    request.open("POST", "foo.php", true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Content-length", requestText.length);
    request.setRequestHeader("Connection", "close");
    request.send(request);
  } catch(e) {alert("error"); return "CouldNotCompleteRequest";}
}

foo.php:

<?php
  file_put_contents('bar.txt', "facepalm", LOCK_EX);
  echo "foobar";
?>

1 个答案:

答案 0 :(得分:3)

AJAX的基础是异步 Javascript和Xml。在javascript转到下一个语句之前,您的服务器没有时间做出响应。状态为零,因为还没有发生任何事情。您需要同步等待响应以获得一个回调方法,该方法在响应完成后显示响应。此外,如果状态更改并且不是4,则不是错误。