我有一个iOS应用程序,我在网页视图中加载html内容。html是登录页面,其中用户凭证经由ajax被发送到服务器,并且认证成功/失败响应被接收。现在,响应包含一个cookie (在Set-Cookie头字段中),我可以在Objective-C端捕获它,如下所示:
NSDictionary* headers = [(NSHTTPURLResponse *)response allHeaderFields];
NSString *strCookies = [headers valueForKey:@"Set-Cookie"];
NSLog(@"cookies -> %@", strCookies);同样的响应还包含一个我在浏览器内部使用的responseText:
Ajax("/login", "POST", { onsuccess : function(response){
/* Do HTML stuff with response */ }
});现在,我需要cookie来发出进一步的ajax请求(在登录页面之后)。但是,cookie不是在webview浏览器中设置的。查找document.cookie将返回空字符串。我可以使用xhr.getAllResponseHeaders()打印所有响应头,但不能访问xhr对象中的Set-Cookie字段。
如何在webview中设置cookie?或者我别无选择,只能通过Obj-C发出所有ajax请求?
发布于 2012-05-02 19:16:00
您可以在发送到webview的请求中设置cookie。
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:yourURL];
[request setValue:yourCookie forHTTPHeaderField:@"Cookie"];这可以在UIWebview委托shouldStartLoadWithRequest中完成
https://stackoverflow.com/questions/9782306
复制相似问题