gpt4 book ai didi

php - CodeIgniter Ajax 层

转载 作者:可可西里 更新时间:2023-11-01 00:49:59 26 4
gpt4 key购买 nike

我一直在对 ajax 进行大量研究,但我似乎找不到太多关于使用 codeigniter 创建单独的 ajax 层的信息......我在 codeigniter 上执行教程视频的目录树中看到了 ajax Controller ,只是从来没有得到真正的解释。我假设它是为了促进封装并仅向启用了 javascript 的用户展示等等,只是不确定如何在 Controller 中实现它以便在我自己的项目中使用。

最佳答案

这完全取决于您在做什么。在我看来,最简单的方法不是使用单独的 AJAX Controller 和 url,而是检测 Controller 中的请求并输出与平常不同的内容。 Input class有一个功能:

/**
* 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');
}

我更喜欢使用常量:

/**
* Is this an ajax request?
*
* @return bool
*/
define('AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest');

Controller 方法中的示例用法:

$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);

这样,您就不会将相同或相似的应用程序逻辑分散到多个不同的 Controller 中,并且您的代码可以更易于维护。例如,您的标准 HTML 表单可以使用 AJAX 发布到相同的位置并具有不同的输出,因此它也有助于制作 progressive enhancement。更容易和清洁。此外,您不会有需要对用户“隐藏”的“仅限 AJAX”的 URL。

关于php - CodeIgniter Ajax 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9693248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com