示例网址:http://twitter.realgamingreview.com/index.php
编辑:忘了提及:使用测试登录:test / test输入用户名/密码。
我正在尝试执行一个简单的AJAX请求来从数据库中检索一些数据。目标文件serverTime.php似乎工作得很好;它插入所需的数据并返回所需的responseText。
然而,该请求似乎是两次开火。当我使用Firebug逐步执行JavaScript时,这一点很清楚。这会导致页面“重置”(不完全确定),这样我的光标就会失去当前文本框的焦点,这是一个新问题。 URL也说“localhost / twitter / index.php?message =”,即使我的消息实际上并不是空的。我想在重大问题出现之前解决这个相当小的问题。
JavaScript如下。 ajaxRequest是我的XMLHTTPRequest对象。任何帮助表示赞赏!
//Create a function that will receive data sent form the server
ajaxRequest.onreadystatechange = function(){
if (ajaxRequest.readyState == 4){
document.getElementById('output').innerHTML = ajaxRequest.responseText;
}
}
// build query string
var message = document.myForm.message.value;
var queryString = "message=" + message;
//send AJAX request
ajaxRequest.open("GET", "serverTime.php" + "?" + queryString, true);
ajaxRequest.send(null);
谢谢,
帕拉贡
答案 0 :(得分:4)
我已经看过很多次了,对我而言,它一直都是萤火虫。尝试关闭firebug并再次提交请求。使用fiddler或其他方法来验证请求只执行一次。
答案 1 :(得分:1)
我的问题与AJAX完全无关。相反,这是一个简单(但模糊)的问题,在我的表单中有两个文本框,我能够点击输入而没有页面重新加载,但只有一个,页面会因某种原因重新加载。
我已经改变了我的事件系统,以至于我不依赖于那些不可靠的东西(现在使用jQuery来监听按下特定文本框的Enter键)。
感谢那些花时间回答我错误信息的人。
答案 2 :(得分:0)
当我在Javascript中编写AJAX函数时,我通常会保留一个状态变量,以阻止在当前正在进行调度时调度新请求。如果您只想忽略在另一个请求完成之前发出的请求,您可以执行以下操作:
但是,在某些情况下,您希望对操作进行排队。如果是这种情况,那么当inProgress为true时,您不能忽略对ajaxRequest.send()的请求。以下是我对这些案例的建议: