在jQuery AJAX请求后创建一个Cookie


Create a Cookie after an jQuery AJAX request?

我的脚本是一个简单的喜欢和不喜欢按钮(称为反应)。它运行良好,但现在我想在投票通过后创建一个快速的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 );

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

但无论出于什么原因,你都不想。

我会将数据存储在一个JSON对象中,该对象带有一个用户标识符(但是您希望从彼此中识别用户)和一个注释id列表。

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

以及在将其存储在cookie或本地存储之前只使用JSON.stringify()。

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

谢谢!