tags : REST API, JavaScript
あるオリジンで動いている Web アプリケーションに対して、別のオリジンのサーバーへのアクセスをオリジン間 HTTP リクエストによって許可できる仕組み
読み方は コルス or シーオーアールエス
CORS ではリクエストの種類が Simple Request と Preflight Request の2種類に分けられています。
プリフライトリクエストの場合ブラウザが勝手にAuthorizationヘッダーを削除してしまってBasic認証を突破できず401になってしまう。
シンプルリクエストではヘッダは Accept Accept-Language Content-Language Content-Type のどれかでなければならず、Authorizationを含められない。
別オリジンでCORSとなり、Basic認証がある場合、 Basic認証のAuthorizationヘッダーも投げても突破できない。
解決策は2つ
- Basic認証ではなく、サーバーの下のアプリケーションレベルでの認証を行う
- プリフライトリクエストはBasic認証を行わない