在使用HTML5的appcache功能时如何允许json请求?

时间:2012-03-16 16:19:47

标签: json html5-appcache

当我向运行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

3 个答案:

答案 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)

我今天抛出这个问题。但在我的情况下,只需要两个步骤:

  1. $.ajax({ url: "/myurl", cache: false, ...})
  2. 使用
  3. 配置appcache NETWORK会话

    我希望它对你有用。