jquery – 存储和发送不在PhoneGap应用程序中工作的http Cookie

我正在Xcode中开发一个PhoneGap应用程序,它使用web api与服务器通信。 api接受标准http请求。作为用户认证过程的一部分,设置了一个cookie,该Cookie被设置为在每个后续请求到api的http标头中发送。

在对api的登录呼叫期间,我可以清楚地看到,作为响应头的一部分,正在发送一个cookie。然而,它似乎不存储,也不会在每个新的api调用的http请求头中发送。

调用api,我使用jQuery的$ .getJSON调用

我发现以下问题和答案:phonegap: cookie based authentication (PHP) not working [webview]

上面的答案建议在应用程序委托的init中将NShttpcookiestorage cookieAcceptPolicy设置为NSHTTPCookieAcceptPolicyAlways。我已经尝试过,似乎并没有解决这个问题。另外,根据Apple’s documentation认的cookieAcceptPolicy是NSHTTPCookieAcceptPolicyAlways。

关于如何获取cookie存储和发送工作的建议受到高度赞赏。

解决方法

CookieStorage应该并且确实保存cookie,以便在后续请求中使用。它甚至可以自动添加它们,如果您使用,例如,NSURLRequest …但只有当它是在cookie上设置的相同的域。

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

可能的原因可以是:

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

2)可能的“会话唯一”和“到期日”标题在cookie上设置不正确,这导致cookie存储丢弃它们

希望这有帮助,从经验知道cookie存储可以令人沮丧的时候。

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...