我正在开发一个有服务器会话使用率的 PhoneGap 应用程序。它需要 cookie 来处理会话。此外,还应该处理来自负载均衡器的 cookie。所以没有别的办法了。如何在 PhoneGap 应用程序中处理 Cookies?
我已经完成了一些研究:
- 有人说 Cookie 处理可能取决于服务器不为未知用户代理(IIS)设置 Cookie: IOS 上的 PhoneGap 会话(cookies)
- 在 JavaScript 中,Cookie 可以用 document.cookie = ... 设置,但是它们不会保存在 PhoneGap 中并丢失。在触发 xhr 请求之前,它可以工作。
- 可以使用 xhr.getResponseHeader (‘ Set-Cookie’)在 xhr 请求后检索 Cookie。但只有在服务器上实际设置时。不幸的是,jQuery 去掉了“ Cookie”头部。
- 在(xhr)请求之后,不会分配和更新 JavaScript document.cookie 属性。
- 有人建议使用 localStorage 保存会话 ID 等。但是所有脚本都可以访问它,这可能是 XSS 安全问题。Cookie 通过使用 httponly 标志来解决这个问题。
- IOS: 有一些修改将改变 webView 的行为来支持 cookies。但是它们似乎不能与 iOS 6和 PhoneGap 2.5: https://groups.google.com/forum/?fromgroups=#!topic/phonegap/ZJE1nxX63ow一起工作
- Cookie 似乎是在 AppRegiate.m (v2.5)中默认启用的。