У меня есть немного Ajax здесь:
$.ajax({
type: "POST",
url: "<?=site_url('front_office/get_email_list/')?>",
dataType: "text",
success: function(response) {
console.log(response)
}
});
По какой-то причине этот код возвращает желаемый PHP, но он также возвращает мой файл head.php.
function get_email_list() {
$center_ids = array(
/* list of user ids */
);
print_r(json_encode($this->user_model->get_email_list($center_ids)));
/* get_email_list($center_ids)) returns a database query result */
}
И, наконец, мой head.php содержит ваш обычный <head>
теги с импортом javascript и css.
Вывод выглядит примерно так:
**** return from php *****<head>header stuff</head>
Я бы предпочел не анализировать информацию заголовка, а просто получить вывод PHP.
Заметка: Я использую codeiginiter и вызываю функцию внутри front_office
контроллер.
Вторая нотаЯ знаю, что сейчас ничего не публикую, но скоро буду. Я старался GET
но проблема сохраняется.
Вы возвращаете представление, проверяете запрос, если это не ajax, загружаете представление, иначе возвращаете закодированный в json результат в ваш запрос ajax.
if (!$this->input->is_ajax_request()) {
// load view
}else{
// Adding header, so jQuery ajax request will know that it is json
// and result will be parsed immediately
$this->output->set_content_type('application/json');
$this->output->set_output(json_encode($email_list_result));
}
Подробнее о возврате JSON по адресу:
Возвращение JSON из PHP-скрипта
Также проверьте, загружаете ли вы head.php в метод конструктора?
Пожалуйста, отправьте весь код с контроллера.
Других решений пока нет …