-1
我正在尝试编写一个获取外部网址的JavaScript函数,并试图在'tmOut'msecs中验证它的存在。如果在此时间范围内进行验证,则应使用此网址作为参数调用“回调”函数。跨域XMLHttpRequest验证网站存在?
下面是函数:
function chkUrl(url, tmOut, callback) {
var abortChk = false;
var abortTmr = setTimeout(function(){abortChk = true;}, tmOut);
var x = new XMLHttpRequest();
x.onreadystatechange = function() {
if (x.readyState == 4) {
if (x.status < 400 && !abortChk) {
clearTimeout(abortTmr);
callback(url);
}
}
};
x.open('GET', url, true);
x.send(null);
}
问题是因为跨域调用的(可能),我得到x.status = 0不管URL存在。
有没有办法克服/解决问题(用户不必修改任何默认浏览器设置)?或者,有没有办法实现相同的功能呢?
此功能是否为“可重入”? (可有一次,我把它安全地多次为不同的网址,在那里?)