我无法在 iPad ios 5 上运行应用程序缓存。我的 Intranet 上有一个站点,如果我使用 Safari 或 Chrome,缓存清单被读入,文件被下载到缓存以供离线使用利用。
我已将此日志记录功能添加到我的页面:
function logEvent(e) {
var online, status, type, message;
online = (navigator.onLine) ? 'yes' : 'no';
status = cacheStatusValues[cache.status];
type = e.type;
message = 'online: ' + online;
message += ', event: ' + type;
message += ', status: ' + status;
if (type == 'error' && navigator.onLine) {
message += ' (prolly a syntax error in manifest)';
}
console.log(message);
}
在桌面浏览器上,我收到以下消息:
Application Cache Checking 事件 Application Cache NoUpdate 事件在线:是,事件:检查,状态:空闲 /IM/:76 在线:是,事件:noupdate,状态:空闲
但是,对于 iPad,应用程序缓存不会被读取。应该注意的是,由于公司政策,iPad 需要通过备用网络连接到网站。我用 iPad 收到的信息是:
在线:是,事件:检查,状态:未缓存在线:是,事件:错误,状态:未缓存(可能是语法错误)
我们正在使用 IIS 为该站点提供服务,并且我们为 .appcache 添加了一个 MIME 类型,以用作文本/缓存清单。我确实从我的桌面在 Fiddler 中记下了,当我请求该页面时,它返回:
结果 协议 主机 URL 正文 缓存 内容类型 进程 注释 自定义
5 401 HTTP 10.6.4.247 /IM/cache.appcache 1,539 文本/html chrome:9976
Fiddler 说它是作为 text/html 提供的,但由于我们在代理后面,所以状态码是 401。
我不知道如何进一步调试,有人知道如何解决这个问题吗?
谢谢!