如何通过 ajax 调用检查网络连接

how to check net connection through ajax call

我们试图检查 authentication.We 是否有用户名,并且 password.We 需要 net_Work 是否可以在 mobile.authentication 在线检查。互联网不在移动设备中 我们需要先显示警报 连接互联网 Ajax 调用验证检查:-

function authentication()
{
 username=$("#name").val();
 password=$("#psw").val();
$('#empty').append("Authentication  Will be Checking.......");
$.ajax({
        url: 'http://183.82.0.221:1234/MyService.svc/GetAuthenticatedUserData/'+username+'/'+password+'',
        dataType: 'jsonp',
        type:'get',
        cache:false,
        success:function(data) {
 if(data==1)
 {
 first();
 }
 else
 {
 alert("Authentication Failed");
 }
}
});
}

以上代码仅在互联网 mobile.it 工作正常时才有效。如果手机没有互联网,则没有任何反应。

如果手机没有网络,我们需要Show alert("this app need internet so Please connect first");

如果你使用的是html5那么解决方案非常simple.There是属性 in javascript

 navigator.onLine

通过使用此 属性 您可以检查是否存在互联网连接或 not.If 是否存在互联网连接然后进行 ajax 调用否则将您的数据存储在浏览器本地存储中并将其推回当应用程序连接到互联网时到服务器。

现在,如果您正在使用 html4,那么解决方案将有点 tricky.In ajax 调用另一个事件侦听器,即 "error"。所以您可以通过这种方式对代码进行离线工作。

error: function(x, t, m) {
    if(t==="timeout") {
        alert("Means there is no internet connectivity");
        now_run_your_offline_function()
    } else {
        alert(t);
    }

这里t可以是"timeout"、"error"、"notmodified"和"parsererror"

如果您使用的是 phone gap.Then,请检查此解决方案。 Android 2.3 and Phonegap, navigator.online does not work

在您的情况下,最终代码将是。

function authentication()
{
 username=$("#name").val();
 password=$("#psw").val();
$('#empty').append("Authentication  Will be Checking.......");
$.ajax({
    url: 'http://183.82.0.221:1234/MyService.svc/GetAuthenticatedUserData/'+username+'/'+password+'',
    dataType: 'jsonp',
    type:'get',
    cache:false,
    timeout: 1000,
    error: function(x, t, m) {
if(t==="timeout") {
    alert("Means there is no internet connectivity");
} else {
    alert(t);
}},
    success:function(data) {
 if(data==1)
{
first();
}
else
 {
 alert("Authentication Failed");
}
}

}); }