【发布时间】:2012-03-26 09:08:33
【问题描述】:
浏览器如何实现对应用程序缓存清单文件的请求,它与请求其他文件的方式有什么不同?
我问是因为我看到在 IIS 7 中使用 Windows/NTLM 身份验证时不会出现的行为。情况是我有一个定义了清单文件的站点。使用匿名身份验证,一切都按预期工作——站点加载并可以脱机使用。
当我禁用匿名并启用 Windows 身份验证时,网站将在身份验证后正常加载,但我会在控制台(在 Chrome 或 iPad 2 上)中看到一个错误,指出无法获取清单文件。
在 iPad 上,错误是无法获取应用程序缓存文件。在 Chrome 中,具体错误是“应用程序缓存错误事件:清单提取失败 (401)”。在这两个实例中,我都可以在 Web 服务器日志中看到 401 响应代码。
为什么这种行为似乎出乎意料的是对所有其他资源(CSS、JavaScript、图像)的请求都按预期工作。此外,我可以浏览到我的 .appcache 文件并加载它。
谁能解释这是怎么回事?
有没有其他人遇到过这个问题并找到了解决方案?
【问题讨论】:
-
在 Apache 上也遇到了同样的问题,我通过 .htaccess 为包含应用程序的目录打开了 HTTP 基本身份验证。在请求应用缓存清单时,Chrome 似乎没有将 Authorization 标头与凭据一起传递。
标签: windows-authentication offline-caching cache-manifest html5-appcache