2016-06-11 14 views
2

CORS(クロスオリジンリソース共有)POSTリクエストを基本認証(https://en.wikipedia.org/wiki/Basic_access_authentication)とともにサーバーに送信する必要があるAngular 2アプリをビルドします。角膜2の基本認証でプリフライトCORSリクエスト

POSTリクエスト自体のAuthorizationヘッダーをうまく設定していますが、CORSのようにブラウザはまずプリフライトOPTIONSリクエストを自動的に送信します。 残念ながら、サーバーが誤って構成されていて(Why does the preflight OPTIONS request of an authenticated CORS request work in Chrome but not Firefox?)、プリフライトでも基本認証が必要です。それは第三者のサーバーです、私はそれを変更することはできません。

これを克服する方法はありますか(たとえば、予告編にAuthorizionヘッダーを追加し、予告編を無効にするなど)。

答えて

3

プリフライトリクエストは、CORSヘッダーが設定されているかどうかを確認するためだけにブラウザによって行われます。必要なヘッダーを取得できない場合は、何もできません。それは実際のPOSTリクエストを作成しません。

あなたが実際にできることは、自分が管理しているサーバーからリクエストを行うことです。クライアントがサーバーに電話をかけ、誤って設定されたサーバーを呼び出し、ブラウザクライアントに応答を転送するためのAPIを提供します。

+0

「...サーバーによって作られています...」 - あなたはブラウザを意味します、そうですか?ええ、それは私が思ったことです...ありがとうGünter。 –

+0

申し訳ありませんが、修正されました。 –

+1

まさに、それが私が次に動く場所です。私が管理下にあるすべてのサーバー側:-) –

関連する問題