2017-03-16 76 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操作。