Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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
Javascript Cordova/AngularJS/Ionic:检查是否可以在线访问和访问域_Javascript_Angularjs_Cordova_Ionic Framework - Fatal编程技术网

Javascript Cordova/AngularJS/Ionic:检查是否可以在线访问和访问域

Javascript Cordova/AngularJS/Ionic:检查是否可以在线访问和访问域,javascript,angularjs,cordova,ionic-framework,Javascript,Angularjs,Cordova,Ionic Framework,我正在开发一个应用程序,希望从服务器动态下载内容(JSON)。在开始下载之前,我想检查设备是否在线,我的服务器是否可以访问 使用Cordova很容易获取网络信息(WiFi,Cellular,None,…)。但我发现WiFi网络存在一个问题,需要VPN连接。如果没有VPN,Cordova将返回WiFi,但应用程序无法连接到服务器。如何检查服务器是否可访问 我正在使用Cordova with Ionic Framework(使用AngularJS)和AngularJS的$http函数来下载我的数据

我正在开发一个应用程序,希望从服务器动态下载内容(JSON)。在开始下载之前,我想检查设备是否在线,我的服务器是否可以访问

使用Cordova很容易获取网络信息(
WiFi
Cellular
None
,…)。但我发现WiFi网络存在一个问题,需要VPN连接。如果没有VPN,Cordova将返回WiFi,但应用程序无法连接到服务器。如何检查服务器是否可访问

我正在使用Cordova with Ionic Framework(使用AngularJS)和AngularJS的
$http
函数来下载我的数据

这是我当前的
isOnline()
服务:

function() {
    var is_online;

    var network_state = navigator.connection.type;

    return ((network_state == 'unknown') || (network_state == 'none')) ? false : true;
}
以下是我下载数据的方式:

if(isOnline()) {
    var url = 'http://domain.com/file.json';

    $http({
        method: 'GET',
        url: url
    })
    .success(function(data, status, headers, config) {
        // save data
    })
    .error(function(data, status, headers, config) {
        // error
    });
}
不幸的是,如果无法访问服务器,下载功能不会转到错误功能


非常感谢你的帮助

在您的WiFi/VPN案例中,我想说错误函数没有被命中,因为您的$http仍在尝试检索数据,并且不知道VPN正在阻止它


你是不是等了一段时间才超时?尝试为调试指定一个较低的超时值,然后检查是否调用了error函数。

谢谢您的回答。问题是success函数被立即调用。