1

ブラウザーからアクセスでき、Android WebView に埋め込むことができる AngularJS で Web アプリケーションを開発しています。

私のチームメイトは、カスタム ヘッダー「AuthToken」を通じてユーザーを認識するいくつかの API を開発しました。これらの API は ASP .NET 4.5 にあり、Web.config ファイルに "Access-Control-Expose-Headers" パラメータを正しく追加しました。

API は、その AuthToken ヘッダーを取得できるようにするメソッド「authorizeUser」を公開します。

ブラウザ (Chrome、Firefox、IE、Safari、Opera など) から Web アプリをナビゲートすると、すべて正常に動作します。

問題は、Web アプリを Android WebView に埋め込むときに発生します。4.2.2 以上の Android バージョンではすべて正常に動作します..しかし、4.2.2 以下の Android バージョンでは、カスタム ヘッダー「AuthToken」がブロックされているようです。ブラウザ。

Android WebView のエンジンの問題のようです (これは Android Stock Browser と同じです)。AJAX リクエストがクロスサイトであると認識しているため、カスタム ヘッダーが切断されていると思います。

Web API がトークンを返すと確信しているからです。

そこで、AngularJS のソース コードを深く掘り下げ、xhr.onreadystatechange の実​​装を編集しました。これ以上、xhr.getAllResponseHeaders().. で応答ヘッダーを取得する必要はありませんxhr.getResponseHeader("<header-name>")

しかしxhr.getResponseHeader("AuthToken")、Android WebView で実行されると、Logcat で「安全でないヘッダー AuthToken の取得を拒否しました」という WebConsole ログが見つかります。


同様の問題に遭遇したことがありますか?

さらに詳しい情報やコード スニペットが必要な場合は、教えてください。

4

0 に答える 0