我想为我的网站编写一个函数,它检查几个Web服务器以查看它们是否在线...我正在使用jQuery.ajax() 我意识到我必须使用JSONP,但我真的不知道该怎么做! 我有一系列IP地址,我想检查相应的服务器是否可用。
到目前为止,这是我的代码:
function urlExists(url){
$.ajax({
timeout: 5000,
type: 'GET',
dataType: 'jsonp',
url: "http://" + url,
cache: false,
"error":function(XMLHttpRequest,textStatus, errorThrown) {
if(errorThrown == "timeout") {
alert("woah, there we got a timeout...");
// At this point the request shall abort
}
},
statusCode: {
404:function(){
alert("404!");
},
0:function(){
alert("0!");
},
500:function(){
alert("500!");
},
200:function(){
alert("it worked!");
}
}
});
}
urlExists("192.168.5.55");
之后我想保存网络服务器是否在线,但在哪里?
答案 0 :(得分:2)
您可以使用ajax complete事件来检查是否所有链接都已经过测试
function urlExists(url){
$.ajax({
timeout: 5000,
type: 'GET',
dataType: 'jsonp',
url: "http://" + url,
cache: false,
"error":function(XMLHttpRequest,textStatus, errorThrown) {
if(errorThrown == "timeout") {
result.push({
'url': url,
'status': "woah, there we got a timeout..."
});
// At this point the request shall abort
}
},
complete: function(){
// Handle the complete event
if(result.length == list.length) {
alert("All url's checked. Check the console for 'result' varialble");
console.log(result);
}
},
statusCode: {
404:function(){
result.push({
'url': url,
'status': "404!"
});
},
0:function(){
result.push({
'url': url,
'status': "0!"
});
},
500:function(){
result.push({
'url': url,
'status': "500"
});
},
200:function(){
result.push({
'url': url,
'status': "it worked!"
});
}
}
});
}
var result = new Array;
var list = ['192.168.5.55','192.168.98.99'];
for (var i = list.length - 1; i >= 0; i--) {
urlExists(list[i]);
};
答案 1 :(得分:0)
你必须调用一个php函数,你有url:“http://”+ url,(url是你的控制器+方法),这里验证状态并插入你的数据库
答案 2 :(得分:0)
执行此操作的唯一方法是使用这样的hackish解决方案:Is it possible to ping a server from Javascript?
由于您希望保存结果,我将假设您使用的是服务器端语言,如PHP或ASP。我熟悉PHP所以我建议让PHP执行PING命令,并根据该结果判断服务器是否在线。
修改强>
关于第一条评论,我建议实施httprequest而不是PING。