Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 xmlhttp随机发送空白请求_Javascript_Php_Ajax - Fatal编程技术网

Javascript xmlhttp随机发送空白请求

Javascript xmlhttp随机发送空白请求,javascript,php,ajax,Javascript,Php,Ajax,我正试图了解我的代码到底发生了什么。我有一个xmlhttp请求将数据发布到我的sendmail.php脚本,然后该脚本会处理数据一段时间 但是在PHP处理的中间,大约有一分钟(但是它变化),一个空白请求被发送到脚本,这意味着我不能从原始帖子中得到响应。 我放了一个inprogress标志来阻止任何双重射击,但这并没有阻止问题。我不确定什么会以随机间隔发送请求 function SendPHP(str, callback){ xmlhttp = new XMLHttpRequest();

我正试图了解我的代码到底发生了什么。我有一个xmlhttp请求将数据发布到我的sendmail.php脚本,然后该脚本会处理数据一段时间

但是在PHP处理的中间,大约有一分钟(但是它变化),一个空白请求被发送到脚本,这意味着我不能从原始帖子中得到响应。 我放了一个inprogress标志来阻止任何双重射击,但这并没有阻止问题。我不确定什么会以随机间隔发送请求

function SendPHP(str, callback){
    xmlhttp = new XMLHttpRequest();
    str = "q=" + encodeURIComponent(str);

    xmlhttp.open("POST","sendmail.php", true);
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState == 4){
                      inProgress=false;
            if(xmlhttp.status == 200){
                            callback(xmlhttp.responseText);
            }
        }
    };
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

        if (inProgress==false){
        inProgress=true;
        xmlhttp.send(str);
        }
        else{
            writeDisplayConsole("ERROR: xmlhttp fired twice!");
        }

}

除非您为了学习而开发自己的XMLHttpRequest库,否则您应该使用像jQuery这样的预构建库。AJAX有很多出乎意料的曲折。jQuery已经解决了所有这些问题。我不同意。互联网上关于ajax的99%都是jQuery解决方案,顺便说一句,在几乎所有情况下,jQuery解决方案几乎与vanilla js解决方案完全相同。别误会,我很欣赏jQuery。但是当没有人知道某些东西是如何工作的,也没有人关心的时候,在那一刻我诅咒jQuery并希望它永远不存在。