2012-12-30 53 views
0

以下代碼是使用navigator.onLine的替代方法 - 通過檢查服務器是否可訪問。JavaScript/Ajax:navigator.onLine替代方法:serverReachable()

'簡單'的問題 - 我如何使它工作?

function serverReachable() { 
    // IE vs. standard XHR creation 
    var x = new (window.ActiveXObject || XMLHttpRequest)("Microsoft.XMLHTTP"), 
     s; 
    x.open(
    // requesting the headers is faster, and just enough 
    "HEAD", 
    // append a random string to the current hostname, 
    // to make sure we're not hitting the cache 
    "//" + window.location.hostname + "/?rand=" + Math.random(), 
    // make a synchronous request 
    false 
); 
    try { 
    x.send(); 
    s = x.status; 
    // Make sure the server is reachable 
    return (s >= 200 && s < 300 || s === 304); 
    // catch network & other problems 
    } catch (e) { 
    return false; 
    } 
} 

上面的代碼是從文章採取:http://louisremi.com/2011/04/22/navigator-online-alternative-serverreachable/,但我不能工作了,爲什麼它不工作。

+0

您遇到什麼問題? –

+0

我什麼也沒看到。我希望它說「在線」或「離線」。 – Homie

+0

如果你使用console.log(serverReachable())',你會從控制檯看到什麼? – Passerby

回答

1

你不能挑,因爲same origin policy的任何隨機服務器「出於某種原因,我用什麼服務器我只得到虛假的,不管」。您只能執行您當前所在的本地域名。