Обнаружение AJAX-запроса в контроллере OpenCart
Я работаю над некоторыми контроллерами в OpenCart 3, и я хочу, чтобы одна из функций контроллера была доступна только через AJAX-запрос. Я пытался использовать переменную $_SERVER['HTTP_X_REQUESTED_WITH'], но OC говорит, что переменная не определена.
с уважением
pcosta94
Ответы - Обнаружение AJAX-запроса в контроллере OpenCart / Detect AJAX request in OpenCart Controller

04.04.2019 04:22:12
на самом деле OpenCart не удаляет $_SERVER vars. Он просто передает их на сервер $this ->. Проблема в том, что "HTTP_X_REQUESTED_WITH" устанавливается только в том случае, если был вызов AJAX. В противном случае он выдаст ошибку.
вы можете проверить, были ли какие-либо ваши запросы сделаны через AJAX, добавив этот код в файловую system/library/request.php
на line 32
после $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 frontend и посетите любую страницу продукта, и вы должны увидеть в консоли браузера XMLHttpRequest
вот так http://joxi.ru/MAjo6vWTjZZjBr
это происходит потому, что на странице продукта отзывы загружаются через AJAX. На главной странице нет вызовов AJAX, поэтому вы не должны ничего видеть в консоли.
Надеюсь, это поможет.