Codeigniter ajax发布您请求的操作是不允许的



一旦用户在按钮上有onclick,我就试图调用ajax,然后按钮会将id传递给控制器,以在我的modal的div中输出结果。然而,当我调试它时,它会向我显示您请求的操作是不允许的。

我能在代码上对此做些什么吗?

视图:

<input type="" name="" value="VIEW" class="btn btn-primary m-t-15 waves-effect" data-toggle="modal" data-target="#defaultModal" onclick="refresh_detail('.$row["Task_ID"].')">

jQuery/AAJAX代码:

<script type="text/javascript">
function refresh_detail(id){
$.ajax({
url : "<?= base_url()?>admin/Admintask/get_task_detail",
type : "POST",
dataType : "json",
data : {"TaskID" : id},
success : function(data) {
// do something
},
error : function(data) {
// do something
}
});
}
</script>

控制器:

public function get_task_detail(){
echo $this->input->post('TaskID');
}

@Marcus由于CSRF保护,您将获得403,因此您可以将URI添加到"csrf_exclude_uris";在config.php文件中。步骤:

  1. 打开您的">application/config/config.php">

  2. 转到第457行或它写入的位置$config['csrf_exclude_uris']=array((

  3. 在数组中添加您的URI,如

    $config['csrf_exclude_uris'] = array('admin/Admintask/get_task_detail');

    注意:从routes.php 确认您的URI

这将从CSRF验证中排除URL。你可以从这里学到更多。

步骤1-onclick="refresh_detail(<?php echo $your_id ?>(";

步骤2-如果您使用的是HTTP,请将配置文件中的$config['cookie_secure']设置为FALSE。

步骤3-设置$config〔'csrf_protection'〕=false;

@Marcus您需要使用ajax代码发送CSRF令牌,如data : {"TaskID" : id,"<?= $this->security->get_csrf_token_name(); ?>":"<?= $this->security->get_csrf_hash(); ?>"}

最新更新