我想创建一个 ajax 页面,我想知道如何正确地做到这一点?本质上,我只需要获取页面数据并阻止内容。
现在,我通过在 ipBeforeResponceSent 事件中打印 json 并退出来解决这个问题的快速而肮脏的解决方案,但它很难看..
class Event{
public static function ipBeforeResponseSent($event){
$ajax = ipRequest()->getQuery('ajax');
if ($ajax){
$page = ipContent()->getCurrentPage();
$data['status'] = 'success';
$data['url'] = $page->getLink();
$data['page'] = ipContent()->getBlockContent('main');
$data['title'] = $page->getTitle();
$data['id'] = $page->getId();
$data['pageorder'] = $page->getOrder();
$data['parent'] = $page->getParentId();
$data['timestamp'] = time();
exit(json_encode($data, true));
}
}
}
Javascript方面:
$.getJSON(PAGE_URL, {ajax: 'true'}, function(responce) {
if (responce.status == 'success'){
/***/
}
});
也许最干净的解决方案是将链接发送到我的插件控制器?