Я попытаюсь помочь вам отладить ответ, а не похоронить в комментариях.
Мы попробовали if($this->input->is_ajax_request()) exit('Hello');
в качестве первой строки get_message()
, и результат был Arrayhello
. Это заставляет меня поверить, что где-то вы проверяете AJAX-запрос и echo
запрашиваете какой-то массив, поскольку именно это произойдет, если вы попытаетесь это сделать.
Мой первый совет : вернитесь к своему __construct()
в том же контроллере и сделайте то же самое. Если вы все еще получаете тот же результат, вернитесь еще дальше, возможно, к используемой библиотеке. Если вы больше не видите Array
, начните использовать код выхода немного дальше по дороге, пока не найдете точку, где, кажется, она срабатывает. К вашему сведению, поскольку вы сказали, что вы новичок в концепции отладки кода, это не способ отладки, это всего лишь один способ.
Кроме того, кажется, из вашего комментария вы теперь получаете Array
вместо заглавной версии? Это странно, это не звучит правильно. Убедитесь, что вы читаете фактический ответ в Firebug, а не то, что видно на экране на вашей странице.
В сторону : Небольшой полезный совет (что я и делаю): установите $this->input->is_ajax_request()
в качестве константы, например IS_XHR
или AJAX
, где-нибудь, как в вашем индексе, файле констант или конфигурации. Это просто облегчает работу. Будет ли запрос изменен с ajax на non-ajax в одном запросе? Нет. Просто посмотрите исходный код на system/core/Input.php
, это очень просто. Пример:
define('AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest');
Это буквально то, что делает класс Input, хотя это немного запутано. Теперь вы можете просто использовать:
if (AJAX) do_ajax_stuff();
Просто личные предпочтения, но я нахожу это очень полезным - и это немного меньше ресурсов, используемых.