我想使用Ajax通过JS File在Codeigniter中发送CSRF令牌。这是我的代码
// main.js (JS File)
$("button").on("click",function(){
var csrf_name = $("#CSRF").attr("name");
var csrf_token = $("#CSRF").val();
$.ajax({
url: "Test/demo",
type: "POST",
data:{
csrf_name: csrf_token ,
},
success: function(data)
{
alert(data);
}
});
});
它是测试控制器:
class Test extends CI_Controller
{
public function demo()
{
echo "Success";
}
}
答案 0 :(得分:0)
这将在每个请求上发送ajax令牌。加载jquery后,应将其放在头文件中。
<script>
var token = {}; // forgot this
token['<?php echo $this->security->get_csrf_token_name() ?>'] = '<?php echo $this->security->get_csrf_hash() ?>';
jQuery.ajaxSetup({
data: token,
type: 'POST',
error: function (jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 404) {
alert('AJAX page not found.');
} else {
console.error('AJAX Error: ' + textStatus + ': ' + errorThrown);
}
}
});
</script>