尝试制作竖起大拇指按钮(使用字体真棒创建),让人们“喜欢”评论。我正在尝试使用跨度而不是按钮,我正在尝试提交跨度内的一些隐藏字段。不确定这是不是一个好主意!
我真的很感激一些帮助,因为我不认为数据是正确的。我不知道如何判断发布了什么,但是当我点击跨度时,在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;
});
非常感谢,
凯蒂
答案 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,从数据库中查找哪个用户发送请求并继续执行其余的应用程序逻辑。