2012-03-20 12 views
5

私はiOSアプリケーションを持っています.HTMLコンテンツをwebview内で読み込んでいます。 htmlはログインページであり、ユーザーの資格情報はajax経由でサーバーに送信され、認証の成功/失敗の応答が受信されます。ここで、応答は、私は同様にObjective-Cの側に取り込むことができる(Set-Cookieヘッダフィールドの)クッキーが含まれ、UIWebviewブラウザのcookieをdocument.cookieで読み取ることができません

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 */ } 
}); 

これで、(ログインページの後に)追加のajaxリクエストを作成するためにクッキーが必要になりました。ただし、クッキーはWebviewブラウザ内で設定されていません。 document.cookieを検索すると、空の文字列が返されます。 xhr.getAllResponseHeaders()を使用してすべての応答ヘッダーを印刷できますが、xhrオブジェクトのSet-Cookieフィールドにアクセスすることはできません。

どのようにしてクッキーをウェブビュー内で設定できますか?それともObj-C経由ですべてのAjaxリクエストを行うしかないのですか?

答えて

2

webviewに送信する要求にCookieを設定できます。

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

これはshouldStartLoadWithRequestのUIWebViewデリゲートに行うことができる

+0

@fenderplayerこの回答はお役に立ちましたか? –

関連する問題