使用PHP的die()结束AJAX请求

时间:2018-03-15 06:38:38

标签: php ajax

您需要使用die();来结束ajax请求的原因是什么?我读过,当它的唯一目的是用于AJAX调用时,建议使用die()exit()来终止脚本吗?

当输出是脚本中的最后一件事时,这是否适用于我的脚本?因为我的index.php文件加载环境,从控制器获取内容然后最后一件事是使用echo输出数据。它可以是ajax的JSON编码数据,也可以是非ajax的HTML内容。我可以通过检查它是否是一个ajax调用来添加最后的模具,但我不明白为什么我会在这里需要它。

// index.php

// Load environment
require '../load.php';

// Handle request
$controller = new App\Controllers\Controller();
$content = $controller->doRequest();

// Output the content
echo $content;

// Terminate script with die() for AJAX requests (is this needed?)
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    die();
}

1 个答案:

答案 0 :(得分:0)

如果您使用其中一个可以自行输出其他数据的php-framework,那么您需要使用exit

另外,不要忘记不要在脚本末尾使用?>。您可以在php结束标记后留空行,这样如果您不使用exit

,您的网络服务器将添加此空行来回答

另外,不要忘记register_shutdown_function - 它会在exit之后立即运行,因此exit是阻止在echo $content;之后添加任何其他关闭功能的好方法

您不能在此具体脚本中使用exit,但也不要忘记删除?>