我正在开发OpenCart 3中的一些控制器,我希望其中一个控制器功能只能通过AJAX请求访问。我尝试使用$ _SERVER ['HTTP_X_REQUESTED_WITH']变量,但OC表示该变量未定义。
最好的祝福
pcosta94
实际上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调用,所以你不应该在控制台中看到任何东西。
我希望这有帮助。