如何通过ajax调用检查网络连接
Posted
技术标签:
【中文标题】如何通过ajax调用检查网络连接【英文标题】:how to check net connection through ajax call 【发布时间】:2015-03-05 00:09:31 【问题描述】:我们试图检查身份验证。我们有用户名和密码。我们需要 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");
);
以上代码仅适用于互联网有移动设备。它工作正常。如果手机没有互联网,它不会响应任何东西。
如果手机没有网络,我们需要显示警报(“此应用需要网络,所以请先连接”);
【问题讨论】:
与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?。顺便说一句,这是“提前致谢”,而不是“致谢”。 【参考方案1】:如果你使用的是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 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");
);
【讨论】:
感谢回复我们正在开发 Phone-Gap 应用程序,因此 navigator.onLine 对我不起作用。它总是返回 true 那么您可以尝试第二种解决方案。这将适用于您的情况。 如你所说尝试过。在移动设备中删除了 wifi 连接,但我没有收到任何警报。请指导我 在ajax调用中添加超时:1000,然后尝试。 (xmlhttprequest, textstatus, and message) 是 X,t,m以上是关于如何通过ajax调用检查网络连接的主要内容,如果未能解决你的问题,请参考以下文章
如何在Android中检查网络内的互联网连接(通过HOTSPOT使用其他设备的互联网)