Я делаю некоторые вычисления, чтобы проверить, правильно ли пользователь ввел правильную сумму или нет.Я вызываю метод JQuery для события keyup текстового поля.Поскольку этот запрос будет отправляться снова и снова по ключу, я создал токен csrf внутри формы и использовал его сгенерированное значение в методе JQuery.Каждый раз, когда это вызывается, выдает ошибку «403 Forbidden».Пожалуйста, дайте мне знать, что я делаю неправильно.
Вот мой HTML:
<form id="form1" method="post" action="">
<?php
$hash_name=$this->security->get_csrf_token_name();
$hash_value=$this->security->get_csrf_hash();
?>
<input type="text" id="hash_value" value="<?php echo $hash_value;?>" style="display: none" />
<h3>Transfer to cash wallet</h3>
<div class="form-group form-animate-text" style="margin-top:40px !important;">
<input type="text" class="form-text" name="amount" id="ent_amount" onkeyup="check_balance(this.value)" required>
<span class="bar"></span>
<label>Amount to transfer</label>
</div>
<h5 id="amount_over"></h5>
<input type='button' class="btn btn-sm btn-primary m-t-n-xs" onclick="submitCash()" id='myBtn' value="Transfer" />
</form>
Вот мой метод JQuery:
<script type="text/javascript">
function check_balance(str){
$(document).ready(function(){
var hash_value=$("#hash_value").val();
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>" + "Users/check_earning",
data: {amount: str, csrf_snt_token: hash_value},
dataType: "text",
cache:false,
success:
function(data){
if(data==200){
}
else{
$('#amount_over').html('* Transfer amount is greater than total balance');
}
}
});
return false;
});
}
</script>
вот мой контроллерфункция
public function check_earning(){
$entered_amount=$this->input->post('amount');
$total_earnings=500;
if($entered_amount>$total_earnings){
echo "error";
}
else{
echo "200";
}
}
Любая помощь будет высоко ценится.