在脚本结束之前关闭来自 PHP 的 AJAX 请求


close ajax request from php before script ends

如何在脚本结束之前关闭来自 php 的 ajax 请求?示例:用户请求 php.php,其中有一行:echo "phpphp",在这一行之后,ajax 请求完成并有数据"phpphp",但 PHP 脚本继续运行,不使用进程或分叉?

如何使用 PHP 实现此方案? 有答案。设置"连接关闭"和"内容长度标头",并进行刷新。

  ob_start();
  echo "111";
  header("Content-Length: ".ob_get_length());
  header("Connection: close");
  flush();
  somescript();

尝试流式传输 PHP 文件,一旦达到某个点,向 JS 发送返回,这将关闭 JS 连接并(也许?)允许此 php 文件继续?

没有尝试过,但值得一试。

// set as plain text
header('content-type:text/plain');
// let it stream
ob_implicit_flush(true);
ob_end_flush();

exitexit的任何别名将停止脚本执行。

看看输出缓冲 - 将ob_start()ob_flush()一起使用,或者简单地flush()可能会解决问题。