当我向运行jquery mobile的webapp添加appcache时,所有从我的服务器stoppet请求json文件的ajax调用都在工作。我的清单文件如下所示:
CACHE MANIFEST
CACHE:
index.html
scripts/jquery-1.7.1.min.js scripts/jquery.flot.min.js
scripts/jquery.flot.threshold.min.js
scripts/jquery.mobile-1.0.1.min.js
styles/jquery.mobile-1.0.1.min.css
styles/touchStyles.css
styles/styles.css
NETWORK:
index.appcache
dataFetchAndDraw.js
initJson
其中initJson是其中一个无效的调用。我试图输入完整的地址(aaa:bbb:ccc:ddd:6565 / initJson)也没有成功。
在我的.htaccess文件中,我只有这一行:
AddType text/cache-manifest .manifest
答案 0 :(得分:10)
我刚遇到此问题并且必须在清单文件的NETWORK部分添加通配符,以允许浏览器访问网络以获取任何非缓存资源。
NETWORK:
*
http://*
您显然需要上面的两个通配符条目才能支持所有浏览器。
我还发现appcachefacts.info是一个有用的资源,可以理解这个以及有关appcache的其他细节。我建议在继续使用appcache学习曲线之前一直阅读:
NETWORK部分列出了可以通过Internet加载的所有URL。如果您的应用程序包含任何API调用,请确保在此处枚举它们。请注意,这是一个网址前缀列表,因此,如果您的所有网络电话都以http://example.com/api/开头,则只需要包含这些内容。
如果要允许访问任意URL(脚本,样式表,API调用,任何内容),请在本节中包含*,http:// *和https:// *。 (Chrome和Safari尊重 在*; Firefox需要http:// *和https:// *。)
答案 1 :(得分:2)
我遇到了与我正在处理的应用程序类似的问题,我遇到的问题是ajax调用中的缓存标志是默认为true。
我发现当我添加
cache : false
到我的ajax GET请求请求命中服务器。 (http://api.jquery.com/jQuery.ajax/)
答案 2 :(得分:0)
我今天抛出这个问题。但在我的情况下,只需要两个步骤:
$.ajax({ url: "/myurl", cache: false, ...})
我希望它对你有用。