gpt4 book ai didi

javascript - angularjs rest get方法不适用于启用.appcache

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:29:01 27 4
gpt4 key购买 nike

我正在使用一个使用休息服务的 Angular 应用程序,我需要有一个 .appcache 文件才能离线工作。

当我将此 header 放入 UI 时:

<html lang=""  ng-app="labsisApp">

我在 Controller 中有这段代码:

   $http.get('http://localhost:2700/users')
.success(function(data){
$scope.users = data;
})
.error(function(data, status, headers, config) {
$scope.onLine = false;
});

是有效的!,但是当启用应用程序缓存时:

<html lang="" manifest="labsis.appcache" ng-app="labsisApp">

尽管有此应用程序缓存文件,但获取请求不起作用:

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 时就会出现这个问题,并且会抛出一个 Angular 问题。 POST 方法有效,但 GET 方法无效。

最佳答案

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

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

NETWORK:
/users

这将允许客户端在在线时请求该 url,但在离线时请求将失败。使用此解决方案,您可以随时请求您列出的资源 NETWORK部分你必须先检查你是在线还是离线,如果你离线则做一些不同的事情(例如从 localStorage 加载数据)。

另一种解决方案是添加 /users给你的CACHE:部分。

关于javascript - angularjs rest get方法不适用于启用.appcache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30439183/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com