これはすべて初めてですが、ファイルがバックグラウンドでサーバー上のディスクに書き込まれている間に Web ページを表示しようとしています。簡単なページをロードしてから、実際のファイル操作を処理する 2 番目のスクリプトに AJAX 応答を送信します。これは、ファイルの生成中に単純なページが読み込まれるのをユーザーが 30 秒以上待たないようにするためと、ブラウザーのタイムアウトを回避するためです。ファイルが書き込まれたら、それにリダイレクトしたいと思います。ただし、ファイルは作成されず、AJAX 要求が常に成功のステータス コードを返すにもかかわらず、リダイレクトによって 404 に直接送信されます。
例
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
か?