Обнаружить AJAX-запрос в контроллере OpenCart - PullRequest
0 голосов
/ 03 апреля 2019

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

С наилучшими пожеланиями

pcosta94

1 Ответ

1 голос
/ 04 апреля 2019

На самом деле OpenCart не удаляет переменные $ _SERVER.Он просто передает их на сервер $ 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 и перейдите на любую страницу продукта, и вы должны увидеть в консоли браузера XMLHttpRequest

примерно так: http://joxi.ru/MAjo6vWTjZZjBr

это потому, что на странице товара отзывы загружаются через AJAX.На домашней странице нет вызовов AJAX, поэтому вы не должны ничего видеть в консоли.

Надеюсь, это поможет.

...