对于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');
您是否有一个提示如何通过一次通话实现这一目标?