这一切有点新,但我试图在后台将文件写入服务器上的磁盘时显示网页。我让一个简单的页面加载,然后将 AJAX 响应发送到第二个脚本,该脚本处理实际的文件操作。我这样做是为了让用户在生成文件时不会等待 30 多秒来加载一个简单的页面,并试图避免浏览器超时。文件写入后,我想重定向到它。但是,该文件永远不会被创建,并且重定向会直接将您发送到 404,尽管 AJAX 请求总是返回成功的状态代码。
例子
index.php
<html>
<head>
<script src="js/jquery-1.8.3.min.js"></script>
</head>
<body>
<script>
$.ajax({
url: "out.php",
method: "get",
data: { 'answer' : 42 },
success: function(data, status, jqxhr) {
alert(jqxhr.responseText);
$("body").append("<meta http-equiv='refresh' content='0;out.log'>");
}
});
</script>
</body>
</html>
out.php
<?php
echo "WHAT IS HAPPENING....";
$fd = fopen("out.log", "wb");
fwrite($fd, "Not this... " . $_GET['answer']);
fclose($fd);
?>
out.php
如果我使用 运行它,它会按我的预期工作php-cgi out.php answer=42
,但同样,当通过浏览器访问时,什么都不会被写入。
有什么方法可以out.php
创建和写入out.log
?