2012-03-20 36 views
5

Web sayfamda html içeriği yüklediğim bir iOS uygulamasına sahibim. Html, kullanıcı kimlik bilgilerinin ajax üzerinden sunucuya gönderildiği ve kimlik doğrulama/başarısızlık yanıtının alındığı bir giriş sayfasıdır. Şimdi, tepki aynı yanıtı da ben tarayıcı içinde kullandığınız bir responseText içerenUIWebview tarayıcısındaki tanımlama bilgisi okunamıyor document.cookie

NSDictionary* headers = [(NSHTTPURLResponse *)response allHeaderFields]; 
NSString *strCookies = [headers valueForKey:@"Set-Cookie"]; 
NSLog(@"cookies -> %@", strCookies); 

ben şöyle Objective-C tarafında yakalayabilir (Set-Cookie başlık alanında) bir çerez, içerir:

Ajax("/login", "POST", { onsuccess : function(response){ 
     /* Do HTML stuff with response */ } 
}); 

Artık ajax isteklerini (giriş sayfasından sonra) yapmak için çereze ihtiyacım var. Ancak, çerez web tarayıcısının içinde ayarlanmamıştır. document.cookie aranıyor boş bir dize döndürür. Tüm yanıt üstbilgilerini xhr.getAllResponseHeaders() kullanarak yazdırabilirim ancak xhr nesnesindeki Set-Cookie alanına erişemiyorum.

Çerez, web görünümünde nasıl ayarlanabiliyor? Ya da Obj-C üzerinden tüm ajax isteklerini yapmaktan başka seçeneğim yok mu?

cevap

2

Çerezleri, web görünümüne gönderdiğiniz istek üzerine ayarlayabilirsiniz.

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

Bu

bu sorunuza cevap mü @fenderplayer UIWebView delegesi shouldStartLoadWithRequest

+0

yapılabilir ki? –

İlgili konular