• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/composite/engine.php
  • Класс: BitrixMainCompositeEngine
  • Вызов: Engine::onBeforeLocalRedirect
static function onBeforeLocalRedirect(&$url, $skip_security_check, $isExternal)
{
	if (!self::isAjaxRequest() || ($isExternal && $skip_security_check !== true))
	{
		return;
	}

	$response = array(
		"error" => true,
		"reason" => "redirect",
		"redirect_url" => $url,
	);

	self::setEnable(false);

	Logger::log(
		array(
			"TYPE" => Logger::TYPE_LOCAL_REDIRECT,
			"MESSAGE" =>
				"Script: ".
				($_SERVER["REAL_FILE_PATH"] ?? $_SERVER["SCRIPT_NAME"])."n".
				"Redirect Url: ".$url
		)
	);

	self::$isRedirect = true;
	Page::getInstance()->delete();

	$response = new ResponseJson($response);
	$response->addHeader('X-Bitrix-Composite', 'Ajax (error:redirect)');

	$bxRandom = Helper::getAjaxRandom();
	if ($bxRandom !== false)
	{
		$response->addHeader('BX-RAND', $bxRandom);
	}

	Application::getInstance()->end(0, $response);
}