AJAX:头脑和更多

时间:2013-04-11 22:04:22

标签: javascript ajax http

对于URL的异步快速检查,我使用AJAX with method = HEAD:

function ajax_quickresponse(url) {
    var xmlhttp = null;
    if (window.XMLHttpRequest)
        xmlhttp = new XMLHttpRequest();
    else if (window.ActiveXObject)
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    if (xmlhttp) {
        xmlhttp.open("HEAD", url, true);
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if ((xmlhttp.status > 199 && xmlhttp.status < 400))
                    ; //OK
                else
                    ; //ERR
            };
        };
        xmlhttp.send(null);
    };
};

此接收足以检查http状态,但似乎在服务器端(url)中止脚本。例如。我可以尝试使用一个简单的PHP脚本(url =“http://my-host.er/test/script.php”)来做睡眠(2);然后记录成功消息。 使用xmlhttp.open("HEAD", url, true);时,日志中没有成功输入。

使用xmlhttp.open("GET", url, true);,日志中有成功条目。

然而,使用GET / POST,javascript等待2秒而不是立即(使用HEAD)。

立即知道状态,javascript不需要等待最终响应。

如何利用这两种方法?首先,一旦标题进入,我立即需要状态,在外部url /脚本返回后,我想要另一个监听器。

E.g。第一个alert('http status='+xmlhttp.status);可能会延迟,具体取决于网址/脚本alert('finally completed');

您是否有一个提示如何通过一次通话实现这一目标?

0 个答案:

没有答案