Javascript 未定义ajax函数
我对JavaScript和AJAX都是新手。在期末考试中,我正在尝试创建一个web应用程序。一个脚本将数据从用户发送到服务器,并将其保存到Javascript 未定义ajax函数,javascript,ajax,Javascript,Ajax,我对JavaScript和AJAX都是新手。在期末考试中,我正在尝试创建一个web应用程序。一个脚本将数据从用户发送到服务器,并将其保存到textfile,而另一个脚本始终向用户显示当前的textfile 我在获取用户GUI上显示的文件的当前内容方面取得了很大进展。为此,我使用了ajax函数: var xmlHttp=createXmlHttpRequestObject(); //这是一个很好的解决方案 函数createXmlHttpRequestObject(){ var-xmlHttp;
textfile
,而另一个脚本始终向用户显示当前的textfile
我在获取用户GUI上显示的文件的当前内容方面取得了很大进展。为此,我使用了ajax
函数:
var xmlHttp=createXmlHttpRequestObject();
//这是一个很好的解决方案
函数createXmlHttpRequestObject(){
var-xmlHttp;
if(window.ActiveXObject){
试一试{
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}捕获(e){
xmlHttp=false;
}
}否则{
试一试{
xmlHttp=新的XMLHttpRequest();
}捕获(e){
xmlHttp=false;
}
}
如果(!xmlHttp){
警报(“无法创建该对象”);
}
其他的
返回xmlHttp;
}
//杰德·塞昆德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·沃德·
setInterval(函数注释(){
if(xmlHttp.readyState==0 | | xmlHttp.readyState==4){
open(“POST”,“send_note.php?”,true);
xmlHttp.onreadystatechange=handleServerResponse;
xmlHttp.send();
}
}, 500);
函数handleServerResponse(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
xmlResponse=xmlHttp.responseXML;
xmlDocumentElement=xmlResponse.documentElement;
message=xmlDocumentElement.firstChild.data;
document.getElementById(“display”).innerHTML=消息;
setTimeout('note()',1000);
}否则{
警惕(“出了什么事”);
}
}
}
函数handleServerResponse(data){JSON.decode(data);}
注释
从函数覆盖到字符串。查纳明斯setInterval(函数(){})代码>
您可以在setTimeout中定义函数note()。我觉得最好在外面定义一下 当您的函数已经调用note时,不要声明var note 如注释setTimeout中所述,应为writtent setTimeout(注1000)
最后,既然使用了interval,为什么要在同一个函数上使用setTimeout?是否为了更改间隔持续时间?这样不行。您将在1s后再次触发函数,而interval将每500s触发一次。您在哪里定义了
note()
函数?另外,它应该是setTimeout(注意,1000)
(注意没有引号)checkout这是以前已经回答过很多次的问题!现在,我已经删除了使用var note覆盖note()的部分,但在开发工具中仍然会遇到相同的错误。因此,我实际上能够在用户GUI上显示从php文件中得到的响应,该文件使用xml进行响应,从而使项目的这一部分工作正常。我只是想弄明白,如何让ajax将数据从用户GUI发送到响应的php文件。我曾尝试将数据写入xmlHttp.send(“data”)部分,但我在php文件$_POST中仍然是空的。我已经按照您的步骤进行了操作(我现在已经将整个js代码发布到问题中),但是我仍然在开发工具中遇到错误,但是您使用了setInterval,为什么在文档准备好时调用note(),为什么会有setTimeout(note,1000)???您已经拥有每隔500毫秒发送一次该功能的设置间隔。检查jQuery,它提供了很多特性,比如处理Ajax,而不必担心浏览器兼容性。你的debogguer控制台有什么错误?哦,是的,对不起,伙计,终于明白你的意思了。谢谢你的帮助
$.ajax({
url: 'send_note.php',
type: 'POST',
dataType: 'json',
data: {id: 2}, //js object with data to send to server.
success: function (response) {
alert(data); //data will contain anything that server outputs in "send_note.php"
}
});