一旦用户在按钮上有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文件中。步骤:
-
打开您的">application/config/config.php">
-
转到第457行或它写入的位置$config['csrf_exclude_uris']=array((
-
在数组中添加您的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(); ?>"}