angularjs rest get方法无法启用.appcache

时间:2015-05-25 13:09:45

标签: javascript angularjs rest http html5-appcache

我正在使用一个正在使用休息服务的角度应用,我需要有一个.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方法不起作用。

1 个答案:

答案 0 :(得分:0)

您的缓存清单中未列出网址/users。使用缓存清单文件,客户端将永远不会到服务器请求数据。它总是会在缓存中查找。如果它找不到它,它将失败。

有(至少)两种方法可以解决这个问题。一种是在缓存清单中添加NETWORK部分:

NETWORK:
/users

允许客户端在线时请求该URL,但如果请求脱机则会失败。使用此解决方案,只要您对NETWORK部分中列出的资源发出请求,就必须首先检查您是在线还是离线,如果您处于脱机状态,请执行其他操作(从localStorage加载数据,例如)。

另一种解决方案是将/users添加到您的CACHE:部分。