在jQuery AJAX请求之后创建一个Cookie?

时间:2016-05-10 10:16:49

标签: javascript php jquery ajax cookies

我的脚本是一个简单的喜欢和不喜欢的按钮(称为反应)。它运作良好,但现在我希望在投票结束时创建一个快速cookie,这样人们就不能再投票给这个特定的评论(即1年......或者当他们删除他们的cookie时。)

整个功能有效,但我对如何为每个特定评论添加cookie感到困惑?

(function( $ ) {
    'use strict';

    $( document ).ready(function() {

        $(document).on('click', '.enco-reaction', function(e){

            var data = {
                'action':       'enco_reaction',
                'reaction':     $(this).data('reaction'),
                'comment':      $(this).data('id')
            };

            $.post( 
                ajax_object.ajax_url,
                data,
                function( obj ) {

                    if( obj.error ) {
                        alert( obj.error );
                    } else {
                        $('#enco-reaction-' + obj.reaction + '-' + obj.comment + ' .enco-reaction-count' ).html( obj.value );
                    }
                },
                'json'
            );
        });

    });     

})( jQuery );

2 个答案:

答案 0 :(得分:0)

最好不要使用cookie(因为它可以更好和更大地存储JSON数据,我建议使用cookie存储数据的本地存储),因为它更多地用于临时数据。

但无论出于何种原因,你都不愿意。

我将数据存储在带有用户标识符的JSON对象中(但是您希望彼此标识用户)和注释ID列表。

{
  "users": {
    "user_ids": {
      "123": [
        "111",
        "222",
        "333"
      ],
      "456": [
        "111",
        "222",
        "333"
      ]
    }
  }
}

,只需将JSON.stringify()存储在cookie或本地存储中。

答案 1 :(得分:0)

根据人们的建议,我在我的数据库中选择了一个简单的表,然后记录ip,comment_id,date等,然后我只检索给定IP的最后日期并检查。

谢谢!