首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >https://browserid.org/include.js在带有html5应用程序缓存清单的Chrome中失败

https://browserid.org/include.js在带有html5应用程序缓存清单的Chrome中失败
EN

Stack Overflow用户
提问于 2011-07-18 12:57:09
回答 1查看 382关注 0票数 2

如何使用Chrome中应用程序中应用程序中的browserid.org?此代码:

代码语言:javascript
复制
<html manifest="test.appcache"><head> 

<script src="https://browserid.org/include.js"></script> 
<script> 
function test() {
    if(navigator.id){
        alert('OK!');
    } else {
        alert('Oops!');
    }
}
</script> 
</head><body onload="test();">test</body></html> 

与test.appcache相结合:

代码语言:javascript
复制
CACHE MANIFEST

对于.htaccess:

代码语言:javascript
复制
AddType text/cache-manifest .appcache

每次在Firefox中刷新它时,都会发出“OK”警报。在Chrome中,当您第一次访问它时,它会发出“OK”警报,但是每次您刷新它时都会发出“Oops”警告(即当从appcache服务时)。

关于该文件的一些事实,它没有包括:

它的cross-origin

  • it's服务于https

  • ,它有一个"Cache-Control: public,max-age=0“响应头

尽管如此,我还是不明白为什么这在FF中有效,但在Chrome中却失败了。我认为这在某种程度上与"HTTP缓存头和对TLS上提供的缓存页的限制被清单覆盖“有关。在http://www.w3.org/TR/html5/offline.html和/或“SSL上,清单中的所有资源都必须遵守相同的源策略”。在http://appcachefacts.info/上,但我不明白到底是怎么回事。

我在Ubuntu上用Chromium12.0.742.112进行了测试。

我想一个解决办法是在没有browserid支持的情况下创建一个可缓存的应用程序,并将browserid登录按钮放在一个不存在于缓存清单中的iframe中,并附带一个后备:显示一个灰掉的browserid登录按钮。但我希望有人能找到合适的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2011-07-23 03:17:46

我做了一些实验,这只会影响通过http服务的网络应用程序。因此,为了避免这种情况,只需通过https为您的web应用程序提供服务。

我认为这仍然是Chrome的一个缺陷,但至少这是一个解决办法,所以标记问题就可以回答了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6733216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档