我的原生iphone应用程序,使用带jquery的phonegap(基于浏览器)开发,可以登录到Web服务器,登录后用户可以访问他们的资源。一旦用户通过身份验证,服务器就会在cookie中设置会话ID。
我对这个方案没有任何问题,但我想知道cookie存储在哪里,因为当我做警报(document.cookie)时,它返回空字符串。
是否有可能jquery中的ajax函数在内部管理cookie并将其发送到同一域的每个请求?
我的原生iphone应用程序,使用带jquery的phonegap(基于浏览器)开发,可以登录到Web服务器,登录后用户可以访问他们的资源。一旦用户通过身份验证,服务器就会在cookie中设置会话ID。
我对这个方案没有任何问题,但我想知道cookie存储在哪里,因为当我做警报(document.cookie)时,它返回空字符串。
是否有可能jquery中的ajax函数在内部管理cookie并将其发送到同一域的每个请求?
如果您希望自己的应用程序自动管理cookie,请将其添加到appDelegate.m文件中:
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage
sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
如果您想自己管理会话信息,可以执行以下所有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);
在我的应用程序中,我使用第二种方法自行管理会话cookie,直到我发现第一种方法。