gpt4 book ai didi

javascript - Codeigniter csrf ajax错误

转载 作者:行者123 更新时间:2023-12-03 09:22:50 26 4
gpt4 key购买 nike

我正在对视频进行 ajax 调用以表示喜欢/不喜欢,我发现提交数据时需要传递 CSRF token 。

当用户点击“喜欢”时,我必须调用一个,当用户点击“不喜欢”时,我必须调用一个。我的问题是,如果用户单击“喜欢”并意识到他们犯了一个错误,然后单击“不喜欢”,他们将收到错误:

403 禁止

不允许您请求的操作。

如果用户首先刷新页面并更改其选择,则一切正常。仅当他们尝试在不刷新的情况下从一种切换到另一种时才会出现这种情况。

这是我的代码:

<script>
// like btn
$('.like-btn').click(function() {
$('.dislike-btn').removeClass('text-danger');
$(this).addClass('liked-video');
$.ajax({
type:"POST",
url: '<?=base_url("videos/like_video")?>',
data: {video_id: <?=$video_id?>, user_id: <?=$logged_in_userid?>, value: "like", '<?=$this->security->get_csrf_token_name()?>':'<?=$this->security->get_csrf_hash()?>'},
success: function() {}
});
});

// dislike btn
$('.dislike-btn').click(function() {
$('.like-btn').removeClass('text-success');
$(this).addClass('disliked-video');
$.ajax({
type:"POST",
url: '<?=base_url("videos/dislike_video")?>',
data: {video_id: <?=$video_id?>, user_id: <?=$logged_in_userid?>, value: "dislike", '<?=$this->security->get_csrf_token_name()?>':'<?=$this->security->get_csrf_hash()?>'},
success: function() {}
});
});
</script>

为什么当用户更改选择时会出现错误?

最佳答案

所以我从用户指南中复制了这一段。

“ token 可以在每次提交时重新生成(默认),也可以在 CSRF cookie 的整个生命周期中保持不变。 token 的默认重新生成提供了更严格的安全性,但可能会导致可用性问题,因为其他 token 变得无效(返回/向前导航、多个选项卡/窗口、异步操作等)。您可以通过编辑以下配置参数来更改此行为。“

尝试在您的配置文件中添加/编辑此行:

$config['csrf_regenesis'] = TRUE;

关于javascript - Codeigniter csrf ajax错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com