MVC结构PHP中的AJAX调用
我有一个带有动态组件的AJAX特色页面。我想知道如何在MVC中处理ajax调用 我的第一个想法是为ajax调用创建一个新的控制器,而不呈现视图,并检查ajax请求的路由MVC结构PHP中的AJAX调用,php,ajax,model-view-controller,Php,Ajax,Model View Controller,我有一个带有动态组件的AJAX特色页面。我想知道如何在MVC中处理ajax调用 我的第一个想法是为ajax调用创建一个新的控制器,而不呈现视图,并检查ajax请求的路由 if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { call_user_func_array(array("ajax", $th
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
call_user_func_array(array("ajax", $this->url_action), null);
}
我会让AJAX处理代码的位置取决于它的上下文。如果它与另一个返回完整视图的控制器处理相同类型的内容,只需在该控制器中创建一个“ajax方法”,该方法使用一个JSON头(例如,要发送到浏览器并退出的内容)进行响应。不需要专用的AJAX控制器,就像没有单独的GET控制器或POST控制器一样 编辑:(示例)
然后,如果在服务器头中检测到
xmlhttprequest
,您可以告诉您的路由器使用ajax
-前缀方法,而不是get
-前缀方法。您好,我听不懂您的回答:(我正在尝试用userdata做一篇ajax文章。
class BookController
{
public function getBookDetail($id)
{
// Go fetch a book from the DB.
// Assemble your full fledged view
// Send it to the browser
}
public function ajaxBookDetail($id)
{
// Go fetch a book from the DB.
header('Content-Type: application/json');
echo json_encode($someBookData);
exit;
}
}