douzao9845 2015-12-30 21:56 采纳率: 0%
浏览 63

Codeigniter AJAX JQuery csrf_protection星级评分脚本

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.

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">
            data: {
            <?php echo $this->config->item('csrf_token_name'); ?>: $.cookie('<?php echo $this->config->item('csrf_cookie_name'); ?>') 

            $(function() {
                    starLength: '5',
                    initialValue: $('#rating_star').val(),
                    callbackFunctionName: 'processRating',
                    imageDirectory: '<?php echo base_url(); ?>i/icon',
                    inputAttr: 'postID'

            function processRating(val, attrVal){
                    type: 'POST',
                    url: '<?php echo base_url(); ?>rating/rate',
                    data: 'postID='+attrVal+'&ratingPoints='+val,
                    dataType: 'json',
                    success : function(data) {
                        if (data.status == 'ok') {
                            alert('Some problem occured, please try again.');

  • 写回答

2条回答 默认 最新

  • doudun3910 2015-12-30 22:12

    you set default value for data here


    and you are overriding it here


    so value of token not sending to your server, also you didn't send your data as JSON only you need to send it with with data


    you need to send your data in json format

    data: 'postID='+attrVal+'&ratingPoints='+val,


    data:{"<?=$csrf['name'];?>":"<?=$csrf['hash'];?>", "postID":attrVal, "ratingPoints":val}
    本回答被题主选为最佳回答 , 对您是否有帮助呢?



  • ¥30 关于#硬件工程#的问题:求一下解题思路
  • ¥15 运筹学对偶单纯行法构造扩充问题
  • ¥20 XP系统的老电脑一开机就提示找不到rundll.exe,付费求解
  • ¥15 milvus查询出来的score怎么转换成0-1之间的相似性
  • ¥15 多ip服务器站群如何搭建l2tp服务器
  • ¥15 lvgl V9移植到linux开发板
  • ¥15 VB.net中在窗体中创建一个button控件来关闭窗体,但是提示错误,我该怎么办
  • ¥15 网上下载好的程序但是arduinoIDE编程报错,运行不了,哪里出错了,能具体给改一下吗
  • ¥15 Sharepoint JS开发 付费技术指导
  • ¥15 输入程序运行仿真后,烟雾值不实时检测,变成固定值