jquery - 存储和发送 http cookie 在 PhoneGap 应用程序中不起作用

标签 jquery ios cordova

我正在 Xcode 中开发一个 PhoneGap 应用程序,它使用 Web API 与服务器通信。该 API 接受标准的 http 请求。作为用户身份验证过程的一部分,设置了一个 cookie,该 cookie 应该在每个后续的 api 请求中在 http header 中传输。

在对 api 的登录调用期间,我可以清楚地看到一个 cookie 作为响应 header 的一部分被发回。但是,它似乎没有被存储,也没有在每次新的 api 调用时在 http 请求 header 中发送。

为了调用 API,我使用了 jQuery 的 $.getJSON 调用。

我找到了以下问答:phonegap: cookie based authentication (PHP) not working [webview]

以上答案建议在应用委托(delegate)的 init 中将 NSHTTPCookieStorage cookieAcceptPolicy 设置为 NSHTTPCookieAcceptPolicyAlways。我已经尝试过了,但它似乎并没有解决问题。此外,根据 Apple's documentation ,默认的 cookieAcceptPolicyNSHTTPCookieAcceptPolicyAlways

非常感谢有关如何使 cookie 存储和发送工作的建议。

最佳答案

CookieStorage 应该并且确实保存了 cookie,以便在后续请求中使用。如果您使用 NSURLRequest 等,它甚至会自动添加它们...但前提是它用于在 cookie 上设置的同一域。

我以前遇到过很多次类似的问题,

可能的原因可能是:

1) cookie 的域与您在请求中发送的域不同,可能是由于重定向...例如,如果请求发送到 http://www.somesite.com ,这实际上是重定向到 http://somesite.com (这是真正的域名,cookie 将保存为 sometime.com url/domain 和现在的 www.somesite.com

2) cookie 上的“session only”和“expiration date” header 可能设置不正确,导致 cookie 存储丢弃它们

希望这会有所帮助,从经验中知道 cookie 存储有时会令人沮丧。

关于jquery - 存储和发送 http cookie 在 PhoneGap 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449736/

相关文章:

javascript - 用父链接标题的 "href"包裹文章中的每个图像

ios - 在表格 View 单元格内设置 Collection View 约束的正确方法

ios - 从 UIWebView 中提取 URL

ios - 在上传到 Github 时,为了安全起见,我应该从 Xcode 项目中删除任何内容吗?

android - BitmapFactory.decodeFile 无法解析为类型

iphone - 使用phonegap和titanium的疑惑

javascript - 仅当鼠标水平移动多于垂直移动时才允许 jQuery UI 拖动

javascript - 电子邮件回复样式覆盖了我的样式

javascript - 删除 <a> 中不包含某个 "href"值的 <li> 元素

android - Phonegap 构建启动画面