I am using the star rating script here but I am using with Codeigniter with CSRF_PROTECTION
turned on. I am receiving 500 Internal Server Error
when I click on the stars and the script is called. I found a few similar post here but none that helped me solve my issue.
I tried one fix which I found online that stated to create ajaxSetup (see below) function first to merge the "data" with the data in my function to send the token.
I do not know JavaScript so it is taking me days to figure out the issue. The ajaxSetup is not working. If I turn CRSF_PROTECTION off, the script works.
Help! Please, I am struck on this and want to get it to work because there are other Jquery scripts that I would like to use.
$.ajaxSetup({
data: { <?php echo $this->config->item('csrf_token_name'); ?>:
$.cookie('<?php echo $this->config->item('csrf_cookie_name'); ?>')
}
});
Here is all of the Java script.
<script type="text/javascript">
$.ajaxSetup({
data: {
<?php echo $this->config->item('csrf_token_name'); ?>: $.cookie('<?php echo $this->config->item('csrf_cookie_name'); ?>')
}
});
$(function() {
$("#rating_star").codexworld_rating_widget({
starLength: '5',
initialValue: $('#rating_star').val(),
callbackFunctionName: 'processRating',
imageDirectory: '<?php echo base_url(); ?>i/icon',
inputAttr: 'postID'
});
});
function processRating(val, attrVal){
$.ajax({
type: 'POST',
url: '<?php echo base_url(); ?>rating/rate',
data: 'postID='+attrVal+'&ratingPoints='+val,
dataType: 'json',
success : function(data) {
if (data.status == 'ok') {
$('#avgrat').text(data.average_rating);
$('#totalrat').text(data.rating_number);
}else{
alert('Some problem occured, please try again.');
}
}
});
}
</script>