-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存在。
有沒有辦法克服/解決問題(用戶不必修改任何默認瀏覽器設置)?或者,有沒有辦法實現相同的功能呢?
此功能是否爲「可重入」? (可有一次,我把它安全地多次爲不同的網址,在那裏?)