2017-03-16 77 views
0

我想在Angular2儀表板應用程序中包含一些ping時間。我無法做一些簡單的事情,如從客戶端應用程序獲取ping時間

this.http.get('https://www.google.com').subscribe((res) => { 
    Logger.debug('my response:', res); 
}); 

因爲CORS問題。由於沒有真正的「服務器」,我沒有簡單的方法在服務器上構建可提供這些端點的API端點。該應用程序只是在localhost上提供的文件。

我沒有能力向主機添加代碼(一個簡單的python節點可以解決我所有的問題),所以我想知道是否有方法從各個ip地址獲取ping時間僅客戶端應用程序。

+0

[檢查此](http://stackoverflow.com/questions/4954741/how-to-ping-ip-addresses-using-javascript) – Condorcho

+0

你可以使用遠程圖像,他們可能不會遭受同樣的CORS的問題,雖然計算整體時間可能有點棘手 –

+0

@Condorcho我看到,雖然我在搜索,但看起來正是我需要做的事情,除非我無法創建該服務器端點。我無法在服務器上創建任何內容 –

回答

0

您需要使用具有CORS標頭的服務器。

另外,在羅布的評論中提到,您可以使用圖像:

let t0 = performance.now() 
let img = new Image() 
img.onload = function() { 
    alert(`${(performance.now() - t0).toFixed(2)} ms`) 
} 
img.src = 'https://upload.wikimedia.org/wikipedia/commons/c/ce/Transparent.gif' 

這會將維基百科1x1的GIF圖像。解析會產生可忽略的影響,但它仍不會100%準確。但這是我能想到的唯一方法,不需要任何服務器端組件就可以進行ping操作。