我如何创建一个简单的'喜欢'按钮使用jquery.ajax()?

时间:2014-03-14 12:41:30

标签: jquery

尝试制作竖起大拇指按钮(使用字体真棒创建),让人们“喜欢”评论。我正在尝试使用跨度而不是按钮,我正在尝试提交跨度内的一些隐藏字段。不确定这是不是一个好主意!

我真的很感激一些帮助,因为我不认为数据是正确的。我不知道如何判断发布了什么,但是当我点击跨度时,在console.log中一直空白。

HTML

<span class="fontawesome-uniF087 thumb">
<input type="hidden" name="userID" value="1111">
<input type="hidden" name="commentID" value="2222">
<input type="hidden" name="articleID" value="3333">
</span>

的jQuery

    jQuery(".thumb").click(function() {

        var url = "AJAXthumbsup.asp";

        jQuery.ajax({
               type: "POST",
               url: url,
               data: jQuery(this).serialize(),
               success: function(data) { // on success.. 

                    console.log(data);
                    jQuery(this).html(data); // update the span

               }
          });

        return false; 

    });

非常感谢,

凯蒂

1 个答案:

答案 0 :(得分:2)

为什么数据变量为空白

成功回调中的'data'var将具有作为来自您发送请求的服务器的响应发送的数据。如果您没有回复某些数据,这就是console.log为空的原因。

ex 如果您使用AJAXthumbsup.asp echos“hello there”,此字符串将保存在数据变量中。

如何发送数据:

在数据字段中添加一个包含数据的对象。例如:

jQuery.ajax({
       type: "POST",
       url: url,
       data: { 
          userID: $(this).find('.userID'),
          commentID: $(this).find('.commentID')
          }

关于安全性和加密:

如果你通过ajax发送userID,commentID等来验证用户并保存+1,任何知道如何阅读javascript源代码的人都可以作为另一个用户发送虚假请求。

更好的方式来做你想做的事:

我认为实现这一目标的最佳方法是通过cookies。 保存一个cookie,其中包含服务器端每次登录时生成的唯一密钥(例如1dkjdskajd343kj @jds),并将其保存在数据库中。然后,当用户向服务器发送ajax请求时,从cookie中检索唯一ID,从数据库中查找哪个用户发送请求并继续执行其余的应用程序逻辑。