Jquery 在Android上没有可用网络且禁用wifi时处理ajax请求
我正在使用phonegap开发一个Android应用程序。作为请求/响应,一切正常,现在我必须处理没有3G网络可用且wifi被禁用的情况,在这种情况下,我的jquery ajax()请求没有任何作用,甚至没有出现错误处理程序。我已经设定了10秒的超时时间 有人能告诉我ajax请求出了什么问题吗?为什么错误处理程序没有调用Jquery 在Android上没有可用网络且禁用wifi时处理ajax请求,jquery,android,ajax,error-handling,cordova,Jquery,Android,Ajax,Error Handling,Cordova,我正在使用phonegap开发一个Android应用程序。作为请求/响应,一切正常,现在我必须处理没有3G网络可用且wifi被禁用的情况,在这种情况下,我的jquery ajax()请求没有任何作用,甚至没有出现错误处理程序。我已经设定了10秒的超时时间 有人能告诉我ajax请求出了什么问题吗?为什么错误处理程序没有调用 谢谢在调用$(document).ready()并将变量设置为false之前,您始终可以事先进行测试: var is_online = false; if (navigato
谢谢在调用
$(document).ready()
并将变量设置为false之前,您始终可以事先进行测试:
var is_online = false;
if (navigator.onLine(connected)) {
is_online = true;
}
然后可以在$.ajax()请求中测试该变量
检查此项。使用PhoneGap测试设备上网络连接的当前状态。下面是从上面链接的文档页面中获取的示例:
function reachableCallback(reachability) {
// There is no consistency on the format of reachability
var networkState = reachability.code || reachability;
var states = {};
states[NetworkStatus.NOT_REACHABLE] = 'No network connection';
states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection';
alert('Connection type: ' + states[networkState]);
}
navigator.network.isReachable('phonegap.com', reachableCallback);
希望有帮助 如果等待很长时间(>120秒),是否调用错误处理程序?不会发生任何情况,超时值无论是0或120或更高都不会起任何作用。这是一个很好的答案,但根据我的经验,加载页面后不会更新navigator.onLine属性。因此,如果用户在加载你的应用程序后连接发生变化,你可能不知道。你可以使用AJAX通过另一个文件进行测试,如果在线,则返回true,否则返回false;如果从原始文件中的多个位置调用该新文件,该文件显然将始终具有最新的联机状态,我在这里错了吗?请更新您的网络API链接。这是404。