Я делаю ajax-призыв к тому, чтобы понравиться/не понравилось на видео, и я узнал, что мне нужно передать токен CSRF, когда я отправляю данные.Codeigniter csrf ajax error
Мне нужно называть его одним, когда пользователь нажимает один и один, когда пользователь не нравится. Мой вопрос, если пользователь щелкает, как и понимает, что они сделали ошибку, и нажмите на нелюбви они будут получать сообщение об ошибке:
403 Forbidden
The action you have requested is not allowed.
Если пользователь обновляет страницу первого и изменяет их выбор все это нормально. это только тогда, когда они пытаются переключиться с одного на другое без обновления.
Вот мой код:
<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>
Почему это дает пользователю сообщение об ошибке при внесении изменений в их выборе?
Я думаю, что csrf_token_name и csrf_hash больше не действительны. Возможно, вам нужно обновить токен. – Lirux
Хорошая точка. Не знаю, как я обновил токен. Есть ли способ сделать это без обновления страницы? – iamthestreets