AJAX - 无法加载资源:net :: ERR_EMPTY_RESPONSE

时间:2015-11-25 22:10:33

标签: javascript php ajax server

我正在运行一些javascript,它使用setInterval来触发AJAX请求,然后根据返回的输出执行一些操作。我很困惑,因为它在我的家庭服务器上运行得很好,但是现在我把它放到了网上,我遇到了问题。

Google Chrome上显示以下错误:

http://www.domain.com/ajax/sound.php 
Failed to load resource: net::ERR_EMPTY_RESPONSE

然而,错误并未始终如一地发生。有时脚本会在发生错误之前运行几分钟。有时它会在几秒钟内崩溃。

我已经检查了明显的解决方案 - 我的服务器端脚本没有返回任何内容。我这样做是通过评论整个脚本并让它除了返回信息之外什么都不做。那没有用。

我有几个AJAX请求从同一页运行,并且所有这些请求最终都会返回相同的错误(使用各自的代码页)。我已经尝试隔离请求并以减慢的速率一次执行一个请求,并确定请求在一般意义上有效,但只要其中一个发送错误,它们都会完全停止工作并开始发送相同的错误。

一旦发生错误,当我尝试访问我网站的任何部分时(即使没有AJAX的部分),我也没有得到任何回复。 Safari说" ...服务器意外断开了连接。这有时会在服务器繁忙时发生。等待几分钟,然后再试一次。"我已经在资源管理器,Chrome和Firefox中尝试过此类似的结果。值得庆幸的是,该网站确实在几分钟没有发出AJAX请求后重新启动。

其中一个AJAX请求的示例如下:

//At the set interval, we create a string for the request:

function alef(){
    string = "a='a'";
    request(sound, "ajax/sound.php", string);
}

//That function fires off an AJAX request:

function request(fix, url, string){
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
            fix(xhttp.responseText);
        }
    }
    xhttp.open("POST", url, true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhttp.send(string);
}

//The AJAX request returns a result to be processed by the following function:

function sound(text){
    if(text == "sound"){
        insound.play();
    }
}

假设我的sound.php文件说:

<?php echo "sound"; ?>

它不仅仅是这样说,但即使是出于测试目的,我也遇到了同样的问题。

任何解决方案?

0 个答案:

没有答案