我在这里可能没有使用正确的方法,但我有一个 ErrorHandler 类,它会在出现错误时输出错误页面,如下所示:
private function loadErrorPage() {
if( file_exists( $this->errorPagePath ) ) {
// load the error page: since it's an include, it'll have access all of this classe's properties!
// i.e. $this->errstr, $this->errid, etc.
include ( $this->errorPagePath );
}
// no error page! print generic message!
else {
echo 'Got a problem! Contact the admin!';
}
exit();
}
我遇到的问题是有时我的页面是通过 AJAX 调用来调用的!如果我的 POST 中有错误被错误处理程序捕获,我需要能够 exit(),在 JSON 响应中返回完整生成的页面,或者只是指向它的链接,在 JS 中,重定向到实际的$this->errorPagePath页面回复中给出。但是,后面的解决方案不太有效,因为它需要所有必需的错误处理程序属性,例如 errid、错误字符串等。
不知道如何继续这里。有没有办法可以将 include() 的结果输出到变量中并执行以下操作:
$generatedErrorPage = include ( $this->errorPagePath );
if ( $this->sendErrorPageInJSON ) {
exit(json_encode([ 'errorHtml' => $generatedErrorPage ]));
}
else
{
echo $generatedErrorPage;
exit();
}
红糖糍粑