我正在处理OpenCart 3中的某些控制器,我希望只能通过AJAX请求访问其中一个控制器功能。 我尝试使用$ _SERVER ['HTTP_X_REQUESTED_WITH']变量,但OC表示该变量未定义。
最好的问候
pcosta94
答案 0 :(得分:1)
实际上,OpenCart不会删除$ _SERVER变量。它只是将它们传递给$ this-> server。问题是只有在进行AJAX调用时才设置“ HTTP_X_REQUESTED_WITH”。否则,将产生错误。
您可以通过将此代码添加到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调用,因此您在控制台中不应看到任何内容。
我希望这会有所帮助。