Mam aplikację na iOS, do której ładuję zawartość html w widoku internetowym. HTML to strona logowania, w której poświadczenia użytkownika są wysyłane do serwera za pośrednictwem ajax i odbierana jest odpowiedź o powodzeniu/niepowodzeniu uwierzytelniania. Teraz odpowiedź zawiera cookie (w polu Set-Cookie
nagłówku), które można uchwycić na stronie Objective-C jak tak,Nie można odczytać cookie w przeglądarce UIWebview za pomocą document.cookie
NSDictionary* headers = [(NSHTTPURLResponse *)response allHeaderFields];
NSString *strCookies = [headers valueForKey:@"Set-Cookie"];
NSLog(@"cookies -> %@", strCookies);
tej samej odpowiedzi zawiera również responseText
którego używam w przeglądarce:
Ajax("/login", "POST", { onsuccess : function(response){
/* Do HTML stuff with response */ }
});
Teraz potrzebuję pliku cookie do wykonania kolejnych żądań ajaxowych (po stronie logowania). Jednak plik cookie nie jest ustawiony wewnątrz przeglądarki internetowej. Poszukując document.cookie
zwraca pusty ciąg. Mogę wydrukować wszystkie nagłówki odpowiedzi za pomocą xhr.getAllResponseHeaders()
, ale nie mogę uzyskać dostępu do pola Set-Cookie
w obiekcie xhr.
W jaki sposób można ustawić plik cookie w widoku webowym? Czy nie mam innego wyjścia, jak tylko wykonać wszystkie żądania ajax za pośrednictwem Obj-C?
@fenderplayer zrobił to odpowiedź na pytanie? –