new*_*y13 3 php ajax codeigniter object
我一直在做很多关于ajax的研究,但我似乎找不到很多关于用codeigniter创建一个单独的ajax层...我在codeigniter上执行教程视频的人的目录树中看到了ajax控制器,只是从来没有得到过一个真正的解释.我假设它是为了促进封装,并且仅向启用了javascript的用户显示,这样,不知道如何在控制器中实现它以便在我自己的项目中使用.
这一切都取决于你在做什么.最简单的方式,在我看来,是不是有独立的AJAX控制器和URL,但检测控制器和输出的东西比你通常会不同的要求.该输入类具有这样的功能:
/**
* Is ajax Request?
*
* Test to see if a request contains the HTTP_X_REQUESTED_WITH header
*
* @return boolean
*/
public function is_ajax_request()
{
return ($this->server('HTTP_X_REQUESTED_WITH') === 'XMLHttpRequest');
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用常量:
/**
* Is this an ajax request?
*
* @return bool
*/
define('AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest');
Run Code Online (Sandbox Code Playgroud)
控制器方法中的示例用法:
$data = $this->some_model->get();
if ($this->input->is_ajax_request())
{
// AJAX request stops here
exit(json_encode($data));
}
$this->load->view('my_view', $data);
Run Code Online (Sandbox Code Playgroud)
这样,您就不会通过几个不同的控制器分布相同或相似的应用程序逻辑,并且您的代码可以更易于维护.例如,您的标准HTML表单可以使用AJAX发布到同一位置并具有不同的输出,因此它还有助于使渐进式增强更容易和更清晰.此外,您不需要"隐藏"用户的"仅AJAX"URL.
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |