我在通过带有 csrf 保护的 ajax 向控制器发送请求时遇到问题。它总是给出 403 禁止的错误。在本地主机和实时服务器上也面临这个问题。使用 condeigniter 3.1.9
以下是我的配置值。
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = FALSE;
$config['csrf_exclude_uris'] = array();
Ajax 代码如下
$.ajax({
type:"POST",
url:"http://localhost/Demo/products/getdata",
dataType:'html',
data:"char="+char,
success: function(data){
$('#proCatS').html(data);
}
});
请帮助解决这个问题。谢谢!
可以获取csrf_token_name和csrf_hash码,在POST中传递这些参数
var csfrData = {
'<?php echo $this->security->get_csrf_token_name(); ?>':
'<?php echo $this->security->get_csrf_hash(); ?>'
};
$.ajax({
type: "POST",
url: "http://localhost/Demo/products/getdata",
data: {
char: char,
csrf_test_name: csfrData
},
success: function(data) {
$('#proCatS').html(data);
}
});