Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义ajax函数_Javascript_Ajax - Fatal编程技术网

Javascript 未定义ajax函数

Javascript 未定义ajax函数,javascript,ajax,Javascript,Ajax,我对JavaScript和AJAX都是新手。在期末考试中,我正在尝试创建一个web应用程序。一个脚本将数据从用户发送到服务器,并将其保存到textfile,而另一个脚本始终向用户显示当前的textfile 我在获取用户GUI上显示的文件的当前内容方面取得了很大进展。为此,我使用了ajax函数: var xmlHttp=createXmlHttpRequestObject(); //这是一个很好的解决方案 函数createXmlHttpRequestObject(){ var-xmlHttp;

我对JavaScript和AJAX都是新手。在期末考试中,我正在尝试创建一个web应用程序。一个脚本将数据从用户发送到服务器,并将其保存到
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);
}否则{
警惕(“出了什么事”);
}
}
}
  • PHP必须回显任何输出,以便ajax读取。通常是JSON响应,在JS中可以执行
    函数handleServerResponse(data){JSON.decode(data);}

  • 您正在将
    注释
    从函数覆盖到字符串。查纳明斯

  • 几个音符

  • 使用匿名函数:
    setInterval(函数(){})

  • 您不需要设置超时('note()',1000)因为您的代码将每500毫秒重复一次

  • 您是否考虑过使用jQuery ajax:

  • 例如:


    您可以在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"
        }
    });