如何检查另一台服务器是否使用javascript
How can I check whether another server is up in javascript?
在我的网络应用程序中,我需要检查另一台服务器(位于不同的ip地址)是否已启动。我知道由于跨域限制,我不能使用直接的ajax请求。我无法使用JSONP,因为我无法控制其他服务器。我还需要反复检查服务器是否启动,因为它可能在某些时候不可用。所有这些都不容易。
然而,由于我只关心对远程服务器的请求是否成功(我不关心服务器可能返回的任何数据),我希望这是可能的。
我不能在服务器端这样做,因为服务器端可能对另一台服务器有可见性,也可能没有可见性,我真正关心的是客户端(web浏览器)是否有可见性。
我可以将一个新的iframe附加到页面,src等于远程服务器地址,但如何检查(IF)iframe内容何时成功加载?此外,我如何定期提出请求?通过重复创建新的iframe?这看起来很不干净。
有什么方法可以干净可靠地做到这一点吗?
function testServer(server, cb) {
var img = new Image();
img.onload = function() {
cb.call(this, img);
};
img.src = server;
}
var url = "http://placekitten.com/200/300/"
testServer(url, function _self(img) {
if (img.naturalHeight === 200) {
alert("win");
} else {
setInterval(function() {
testServer(url, _self);
}, 10000);
}
});
你想从远程服务器加载一个图像,然后检查图像的高度或任何你想要的东西
如果无法在远程服务器上放置图像,则需要使用CORS
使用jQuery的Raynos类似解决方案:
$('<img src="http://domain.tld/path/to/a.png">').load(function(){
console.log("domain.tld is up.");
});
我知道由于跨域限制,我不能使用ajax。
不是这样。参见JSONP
相关文章:
- 当eval只执行服务器端数据时,在javascript中使用eval是否安全
- Javascript是否可以在VPS/远程服务器上执行Ruby脚本
- 使用javascript检查服务器上是否存在html文件
- 检查HTML客户端是否接收到服务器的最佳实践's的回应
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- 如何检查服务器是否返回未定义然后忽略它
- 是否可以在不使用服务器端脚本或编程的情况下在网页中进行实时视频流
- 是否可以将 ASP.NET Web 应用程序上载到 VMware 上的虚拟 2008 服务器上
- REST API 服务器是否应该使用 PUT 接收 JSON 数据或普通表单数据
- 使用 POST 方法通过 ajax 发送的数据在发送到服务器之前是否必须进行 URL 编码
- 动态图像加载是否会减少服务器过载
- 如果服务器上的会话已被禁用,是否仍可以使用Cookie或sessionStorage
- 使用服务器端includes检查当前页面是否为主页——如果是,则显示脚本标记
- 是否有一种方法可以限制要上传到客户端服务器的文件大小
- 是否可以与位于不同于html5网站呈现的服务器的网络套接字进行通信
- 远程脚本是否可以向托管脚本的服务器发出请求?同源政策
- 说明Node.js项目:是否只有一个"服务器文件“;在node.js中
- 我如何通过从服务器调用gif来检查是否有互联网连接
- 是否可以检查文件是否返回 404 错误,如果它位于具有 javascript 或 jQuery 的不同服务器上
- 是否有一种搜索引擎友好的方法可以将服务器端呈现的 HTML 与客户端 MVVM/MVC 框架相结合