我有一个程序,当用户登录时会发送聊天。在我的php文件中,我防止未登录的用户发送消息;但是,当有人单击“发送聊天”按钮时,jQuery仍会触发,并且会进行呼叫,这似乎会引起一些奇怪的延迟问题(例如快速刷新聊天日志,几乎就像重新加载了页面一样)。
在某些情况下是否有可能甚至阻止jQuery?
我试图在jQuery本身中放置一个if语句,但是如果这完全可行(我对此表示怀疑),我将找不到解决方法。
$(document).ready(function(){
$("#button4").click(function(){
var message=$("#c4").val();
var key = "sendChat";
$.ajax({
url:'rpc.php',
method:'POST',
data:{
user:user,
message:message,
key:key
},
success:function(data){
document.getElementById('chatbox').innerHTML = data;
}
});
});
});
正如我之前提到的,该程序在功能上起作用;但是,当您尝试发送消息但未登录时,从美学角度上看聊天记录并不令人满意。
除了我的php文件中的直接预防措施(不允许访问数据库)之外,我还在按钮上添加了“ onclick”,如果用户未登录,它会显示警报... >
这使它看起来更好一些,但是整个聊天仍然可以重载,因为在警报关闭后它仍会触发sendChat jQuery ...
也许不可能,我只是挑剔,但如果有人知道防止这种情况的方法,那将不胜感激
答案 0 :(得分:-1)
在点击处理程序中
类似
if ( ! user ) {
event.preventDefault();
}
不要仅依靠php终结点从您的Web表单获取呼叫。 坏人无需浏览器就可以将他们想要的任何东西发送到您的php代码中