Html 当使用“清单”缓存页面时,来自Chrome和Firefox浏览器的REST调用不会向请求添加cookie/sessionid详细信息

Html 当使用“清单”缓存页面时,来自Chrome和Firefox浏览器的REST调用不会向请求添加cookie/sessionid详细信息,html,google-chrome,firefox,manifest,Html,Google Chrome,Firefox,Manifest,背景: 我正在构建一个离线应用程序,当用户单击“同步”按钮时,它应该能够与服务器上的REST服务通信。当用户第一次访问应用程序时,将有网络连接,然后他们可以脱机并在浏览器中使用该应用程序。用户离线时收集的数据将存储在数据库中 即使没有连接到服务器,应用程序也应该加载其页面。要将我的应用程序存储到浏览器中,我有一个清单文件,该文件附加到“index.html”页面 问题: 服务器上的REST服务期望在从客户端向服务器进行REST调用时将cookie/sessionid传递给服务器。从客户端进行的r

背景:

我正在构建一个离线应用程序,当用户单击“同步”按钮时,它应该能够与服务器上的REST服务通信。当用户第一次访问应用程序时,将有网络连接,然后他们可以脱机并在浏览器中使用该应用程序。用户离线时收集的数据将存储在数据库中

即使没有连接到服务器,应用程序也应该加载其页面。要将我的应用程序存储到浏览器中,我有一个清单文件,该文件附加到“index.html”页面

问题:

服务器上的REST服务期望在从客户端向服务器进行REST调用时将cookie/sessionid传递给服务器。从客户端进行的rest调用没有将会话id/cookie名称添加到请求中。这个问题只发生在Firefox和Chrome中,在IE11中可以正常工作

当我从'index.html'页面删除清单详细信息时,一切正常,请求中包含会话id/cookie详细信息

页面中使用清单文件时的REST请求http标头:

页面中未使用清单文件时的REST请求http标头:

offline.manifest

index.html页面


有什么不对劲的线索吗?

我找到了导致这种古怪行为的原因。 当我使用清单文件在本地缓存页面时,浏览器甚至试图从本地获取REST服务数据,而不是通过发出指向服务器的REST调用从服务器获取数据

我所要做的就是修改我的“清单”文件,从网络而不是缓存中获取rest服务数据

NETWORK:
/ERS/online/v1/views/?statusCode=published
/ERS/online/v1/instances/
/ERS/online/v1/instance/ 
/ERS/online/v1/view/
/ERS/online/v1/refdata/
Remote Address:127.0.0.1:7101
Request URL:http://127.0.0.1:7101/ERS/online/v1/instances/
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie:JSESSIONID=esc1XeWczQvYkyPmgHffCVfYI1jU_BMF1C7SByrgWL0-_ZgVDVNM!-1045045782
Host:127.0.0.1:7101
Pragma:no-cache
Referer:http://127.0.0.1:7101/EOffline/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
Response Headersview source
Content-Type:application/json
Date:Fri, 20 Mar 2015 04:08:23 GMT
EformsDA:MadeByDA
Transfer-Encoding:chunked
X-ORACLE-DMS-ECID:296e7550-171d-457b-a020-dd4eae786e1e-00000186
CACHE MANIFEST
# 2015-07-01 v1.0.0

/controllers/offlineController.js
/controllers/offlineMainController.js
<html ng-app="app" lang="en" manifest="offline.manifest" type="text/cache-manifest">
</html>
NETWORK:
/ERS/online/v1/views/?statusCode=published
/ERS/online/v1/instances/
/ERS/online/v1/instance/ 
/ERS/online/v1/view/
/ERS/online/v1/refdata/