我已经通过ajax登录到我的应用程序。当用户在登录之前,尝试访问管理员主页(http://localhost/ci3/admin/Adminhome
),此时它将他重定向到管理员登录页面(http://localhost/ci3/admin/Adminlogin
)。以用户身份登录后尝试访问管理员主页,就会成功。现在我想找到ajax请求。我尝试过类似下面的方法,
管理 Controller
<?php
class Admin_controller extends CI_Controller{
function __construct()
{
parent::__construct();
$this->load->model("Adminmodel","",true);
$this->load->library('user_agent');
$adminId = $this->session->userdata('cp_adminid');
if($adminId == null){
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest'){
echo "it is ajax request";
} else {
echo "it is not ajax request";
}
} else {
}
}
?>
admin.js
$('#adminloginform').validate({
errorClass: 'error',
validClass: 'valid',
errorPlacement: function(error, element) {
error.insertAfter(element);
},
rules: {
username:{
required: true,
},
password:{
required: true,
minlength: 6,
}
},
messages:{
username: {
required: "Email is required",
},
password: {
required: "Password is required",
minlength: "Atleast 6 characters",
}
},
submitHandler: function(){
var admin=$('#adminloginform').serializeArray();
$.post("<?php echo base_url()?>admin/Adminlogin/auth",admin,function(data){
if((data.result == 1) && (data.row.view == 1 || data.row.edit == 1 || data.row.add == 1 || data.row.deleteRole == 1 )){
window.location="<?php echo base_url()?>admin/Adminhome";
} else if (data.result == 1) {
window.location="<?php echo base_url()?>admin/Userhomepage";
} else {
noty({ text: 'Username or Password is incorrect',type: 'error',modal:true,timeout:1000});
}
//$(".simplemodal-close").trigger("click");
},"json");
}
});
最佳答案
如果您在应用程序中使用它,为什么不创建一个标志。 当您从 ajax 调用时,将其设置为 true,默认情况下将其设置为 false。
class Admin_controller extends CI_Controller{
function __construct($AjaxFlag = false)
{
parent::__construct();
$this->load->model("Adminmodel","",true);
$this->load->library('user_agent');
$adminId = $this->session->userdata('cp_adminid');
if($adminId == null){
if($AjaxFlag){
echo "it is ajax request";
} else {
echo "it is not ajax request";
}
} else {
}
}
关于php - 如何在codeigniter中判断是否是Ajax请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42272264/