我有一个问题,我用最新版本的codeigniter 4.x做了一个应用程序。使用完整的ajax系统(0重新加载页面)。
我解释:
1。在我的系统中,如果用户单击。classnamediv,它会加载ajax或简单加载请求的页面。
$(".devmode").on("click", function(){
Clear();
$("#page_details").load("dev", function() {
window.history.pushState("object or string", "Title", base_url+"dev");
console.log('✅ Page Loaded https://local.cms/public/dev');
});
});
页面正确加载了内容,url也改变了,到目前为止一切顺利。
,如果用户直接通过url: https://local.cms/public/dev
加载页面页面被打破了(没有布局视图),如果我在这个页面中包含布局,那么当上面的div被点击时,布局将被复制。
我找不到解决办法。谢谢你的帮助
解决方案:
<?php
function is_ajax()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
}
?>
<?php if(!is_ajax()): ?>
<?= $this->extend('layouts/main-nomidle'); ?>
<?= $this->section('content'); ?>
<?php endif; ?>