我正在使用一个正在使用休息服务的角度应用,我需要有一个.appcache
文件才能脱机工作。
当我将这个标题放入用户界面时:
<html lang="" ng-app="labsisApp">
我在控制器中有这个代码:
$http.get('http://localhost:2700/users')
.success(function(data){
$scope.users = data;
})
.error(function(data, status, headers, config) {
$scope.onLine = false;
});
是否有效!,但是当启用appcache时:
<html lang="" manifest="labsis.appcache" ng-app="labsisApp">
获取请求不起作用,尽管有这个appcache文件:
CACHE MANIFEST
CACHE:
index.html
styles/main.css
scripts/application.js
scripts/angular.min.js
scripts/angular-route.min.js
scripts/lodash.min.js
scripts/restangular.min.js
scripts/main.js
所有重要文件都在appcache文件中。 当我启用appcache时会出现此问题,并且会出现角度问题。 POST方法有效,但GET方法不起作用。
答案 0 :(得分:0)
您的缓存清单中未列出网址/users
。使用缓存清单文件,客户端将永远不会到服务器请求数据。它总是会在缓存中查找。如果它找不到它,它将失败。
有(至少)两种方法可以解决这个问题。一种是在缓存清单中添加NETWORK
部分:
NETWORK:
/users
允许客户端在线时请求该URL,但如果请求脱机则会失败。使用此解决方案,只要您对NETWORK
部分中列出的资源发出请求,就必须首先检查您是在线还是离线,如果您处于脱机状态,请执行其他操作(从localStorage加载数据,例如)。
另一种解决方案是将/users
添加到您的CACHE:
部分。