在phonegap iOS构建中当我使用带有域的document.cookie设置cookie来存储会话值时,我无法做到。
我检索时给了我空饼干。您能否指导我如何在Phonegap iOS应用程序中使用域设置cookie。
当我尝试设置没有域名的cookie时,它的工作正常。但我的请求将在没有域的情况下失败 我使用下面的代码。
document.cookie = "SESSION=" + SESSION +"; path=/; domain=.facebook.com";
but when i try below code its working.
document.cookie = "SMSESSION=" + SMSESSION +"; path=/;";
但没有会话我的应用程序将失败。
还尝试了document.domain,它打破了我的javascript代码。
答案 0 :(得分:0)
请查看以下网址
Where cookie is managed in phonegap app with jquery?
你必须在appdelegate.m中设置以下代码
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage
sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
和在phonegap中
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);
希望它能帮到你
答案 1 :(得分:0)
这就是我解决问题的方法。要设置cookie我已经创建了phonegap插件并使用了原生的http客户端。通过本机客户端设置cookie和域后,使用javascript的普通http客户端工作正常。
用于设置Cookie的iOS phonegap插件代码。
NSDictionary *cookieProperties = [NSDictionary dictionaryWithObjectsAndKeys:
@".domain.com", NSHTTPCookieDomain,
@"/", NSHTTPCookiePath,
@"SESSION", NSHTTPCookieName,
@"Session value",NSHTTPCookieValue,nil];
NSDictionary *cookieProperties1 = [NSDictionary dictionaryWithObjectsAndKeys:
@".domain.com", NSHTTPCookieDomain,
@"/", NSHTTPCookiePath,
@"some cookie", NSHTTPCookieName,
@"some cookie value",NSHTTPCookieValue,nil];
NSHTTPCookie *cookie1 = [NSHTTPCookie cookieWithProperties:cookieProperties1];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
NSArray* cookieArray = [NSArray arrayWithObjects: cookie,cookie1, nil];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:cookieArray forURL:[NSURL URLWithString:urlString] mainDocumentURL:nil];
在cookie存储中设置cookie后创建NSURLConnection并执行同步或异步请求。