Невозможно прочитать cookie в браузере UIWebview с document.cookie - PullRequest
5 голосов
/ 20 марта 2012

У меня есть приложение для 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 не установлен внутри браузера. Поиск document.cookie возвращает пустую строку. Я могу напечатать все заголовки ответа, используя xhr.getAllResponseHeaders(), но не могу получить доступ к полю Set-Cookie в объекте xhr.

Как установить cookie в веб-просмотре? Или у меня нет выбора, кроме как делать все запросы Ajax через Obj-C?

1 Ответ

2 голосов
/ 02 мая 2012

Вы можете установить cookie в запросе, который вы отправляете на веб-просмотр.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:yourURL];
[request setValue:yourCookie forHTTPHeaderField:@"Cookie"];

Это можно сделать в делегате UIWebview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...