使用jquery在phonegap应用程序中管理cookie的位置?

kat*_*uya 11 cookies session mobile jquery cordova

我的原生iphone应用程序,使用带jquery的phonegap(基于浏览器)开发,可以登录到Web服务器,登录后用户可以访问他们的资源.一旦用户通过身份验证,服务器就会在cookie中设置会话ID.

我对这个方案没有任何问题,但我想知道cookie存储在哪里,因为当我做警报(document.cookie)时,它返回空字符串.

是否有可能jquery中的ajax函数在内部管理cookie并将其发送给同一域的每个请求?

Fel*_*ahm 14

如果您希望自己的应用程序自动管理cookie,请将其添加到appDelegate.m文件中:

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage 
                                      sharedHTTPCookieStorage]; 
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 
Run Code Online (Sandbox Code Playgroud)

如果您想自己管理会话信息,可以执行以下所有ajax请求:

var request =   {
                url: my_server_url,
                success: function(response, status, request) {
                    var header = request.getAllResponseHeaders();
                    var match = header.match(/(Set-Cookie|set-cookie): (.+?);/);
                    if(match)
                        my_saved_cookie = match[2];
                },
                }

if(my_saved_cookie)
    request.headers = { Cookie: my_saved_cookie };

$.ajax(request);
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我使用第二种方法自行管理会话cookie,直到我发现第一种方法.

  • 第一种方法在我的iOS5模拟器上不起作用,看起来像Apple改变了行为.第二种方法很好. (2认同)