Javascript Cordova/AngularJS/Ionic:检查是否可以在线访问和访问域
我正在开发一个应用程序,希望从服务器动态下载内容(JSON)。在开始下载之前,我想检查设备是否在线,我的服务器是否可以访问 使用Cordova很容易获取网络信息(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函数来下载我的数据
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函数被立即调用。