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

how to check net connection through ajax call

本文关键字:网络 连接 检查 调用 何通过 AJAX      更新时间:2023-09-26

我们尝试检查身份验证。我们有用户名和密码。我们需要net_Work是否在移动设备中可用。身份验证检查通过在线。互联网不在移动设备上,我们需要显示警报首先连接的互联网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");
 }
}
});
}

上面的代码仅在互联网有移动设备的情况下,它工作正常。如果移动设备没有互联网,则没有任何响应。

如果手机没有互联网,我们需要显示警报("此应用程序需要互联网,所以请先连接");

如果您使用的是html5,那么解决方案非常简单。javascript中有一个属性

 navigator.onLine

通过使用此属性,您可以检查是否有互联网连接。如果有互联网连接,则使ajax调用否则将数据存储在浏览器本地存储中,并在应用程序连接互联网时将其推送回服务器。

现在,如果您使用的是html4,那么解决方案将有点棘手。在 ajax 调用中,还有一个事件侦听器是"错误"。因此,您可以通过以这种方式更正代码来使脱机工作。

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"

如果您使用的是电话间隙。然后检查此解决方案。Android 2.3 和 Phonegap,navigator.online

不起作用

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

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");
}
}

}); }