在OpenCart Controller中检测AJAX请求

问题描述 投票:0回答:1

我正在开发OpenCart 3中的一些控制器,我希望其中一个控制器功能只能通过AJAX请求访问。我尝试使用$ _SERVER ['HTTP_X_REQUESTED_WITH']变量,但OC表示该变量未定义。

最好的祝福

pcosta94

ajax controller request opencart opencart-3
1个回答
1
投票

实际上OpenCart不会删除$ _SERVER变量。它只是将它们传递给$ this-> server。问题是'HTTP_X_REQUESTED_WITH'仅在存在AJAX调用时设置。否则,它会给出错误。

您可以通过在system/library/request.php上将此代码添加到文件line 32来测试您是否通过AJAX发出了任何请求

$this->server = $this->clean($_SERVER);之后添加:

if(isset($this->server['HTTP_X_REQUESTED_WITH'])){
    echo '<script>console.log(' . json_encode($this->server['HTTP_X_REQUESTED_WITH']) .')</script>';
}

然后打开您的OpenCart前端并访问任何产品页面,您应该在浏览器控制台XMLHttpRequest中看到

像所以http://joxi.ru/MAjo6vWTjZZjBr

这是因为在产品页面上,评论是通过AJAX加载的。在主页上没有AJAX调用,所以你不应该在控制台中看到任何东西。

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.