Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在Android上没有可用网络且禁用wifi时处理ajax请求_Jquery_Android_Ajax_Error Handling_Cordova - Fatal编程技术网

Jquery 在Android上没有可用网络且禁用wifi时处理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

我正在使用phonegap开发一个Android应用程序。作为请求/响应,一切正常,现在我必须处理没有3G网络可用且wifi被禁用的情况,在这种情况下,我的jquery ajax()请求没有任何作用,甚至没有出现错误处理程序。我已经设定了10秒的超时时间

有人能告诉我ajax请求出了什么问题吗?为什么错误处理程序没有调用


谢谢

在调用
$(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。