如何从 CodeIgniter 控制器发送 JSON 中的视图文件内容
How to send view file content in JSON from CodeIgniter Controller
我正在使用 CodeIgniter ajax 基础上的一个项目。
我想要什么..?
我想使用 JSON ajax 加载页面内容...
何时从客户端计算机生成请求。控制器将使用动态值执行视图文件,然后它将是 return 视图文件 HTML、面包屑菜单项和其他一些东西...
这是我的工作代码
class Manage extends CI_Controller {
public function contentHome() {
if($this->session->userdata('logged_in')) {
$html = "Hello World... Hello World... ";
$breadcrumb = array();
header('Content-Type: application/json');
echo json_encode(array('breadcrumb' => $breadcrumb , 'pageContent' => $html, 'session' => true, 'redirect' => false));
} else {
echo json_encode(array('breadcrumb' => '' , 'pageContent' => '', 'session' => false, 'redirect' => site_url('manage/login')));
}
}
}
如何用我的视图文件 HTML
替换这个 $html = "Hello World... Hello World... ";
详情请见附件
我找到了解决方案:)
public function contentHome() {
if($this->session->userdata('logged_in')) {
$html = $this->load->view('manage/contentHome', '', true);
$breadcrumb = array();
header('Content-Type: application/json');
echo json_encode(array('breadcrumb' => $breadcrumb , 'pageContent' => $html, 'session' => true));
} else {
echo json_encode(array('breadcrumb' => '' , 'pageContent' => '', 'session' => false, 'redirect' => site_url('manage/login')));
}
}
确保请求来自 ajax
并发回相关的头响应码。
您想在 ajax 错误处理程序
中捕获任何未经授权的(401)代码
public function contentHome()
{
// only allow ajax requests
if(!this->input->is_ajax_request()) return;
// you could also set some validation
if(!$this->session->userdata('logged_in'))
return $this->output->set_status_header("401"); // un-authorized
// Or directly send stuff to the browser
$data = array(
'pageContent' => $this->load->view('', null, true),
'breadcrumbs' => $breadcrumbs
);
return $this->output
->set_header("HTTP/1.0 200 OK")
->set_content_type('application/json')
->set_output(json_encode($data));
}
我正在使用 CodeIgniter ajax 基础上的一个项目。
我想要什么..?
我想使用 JSON ajax 加载页面内容... 何时从客户端计算机生成请求。控制器将使用动态值执行视图文件,然后它将是 return 视图文件 HTML、面包屑菜单项和其他一些东西...
这是我的工作代码
class Manage extends CI_Controller {
public function contentHome() {
if($this->session->userdata('logged_in')) {
$html = "Hello World... Hello World... ";
$breadcrumb = array();
header('Content-Type: application/json');
echo json_encode(array('breadcrumb' => $breadcrumb , 'pageContent' => $html, 'session' => true, 'redirect' => false));
} else {
echo json_encode(array('breadcrumb' => '' , 'pageContent' => '', 'session' => false, 'redirect' => site_url('manage/login')));
}
}
}
如何用我的视图文件 HTML
替换这个$html = "Hello World... Hello World... ";
详情请见附件
我找到了解决方案:)
public function contentHome() {
if($this->session->userdata('logged_in')) {
$html = $this->load->view('manage/contentHome', '', true);
$breadcrumb = array();
header('Content-Type: application/json');
echo json_encode(array('breadcrumb' => $breadcrumb , 'pageContent' => $html, 'session' => true));
} else {
echo json_encode(array('breadcrumb' => '' , 'pageContent' => '', 'session' => false, 'redirect' => site_url('manage/login')));
}
}
确保请求来自 ajax 并发回相关的头响应码。 您想在 ajax 错误处理程序
中捕获任何未经授权的(401)代码public function contentHome()
{
// only allow ajax requests
if(!this->input->is_ajax_request()) return;
// you could also set some validation
if(!$this->session->userdata('logged_in'))
return $this->output->set_status_header("401"); // un-authorized
// Or directly send stuff to the browser
$data = array(
'pageContent' => $this->load->view('', null, true),
'breadcrumbs' => $breadcrumbs
);
return $this->output
->set_header("HTTP/1.0 200 OK")
->set_content_type('application/json')
->set_output(json_encode($data));
}