web-dev-qa-db-ja.com

CORSとHTTP基本認証

基本認証を含めると、プリフライトされたHTTPリクエストはどのように見えますか?次の会話が好きですか? Firebugで正しくデバッグできないため、どのヘッダーをどこに送信する必要があるかを理解するのに問題があります

クライアント:

OPTIONS /api/resource HTTP/1.1
Access-Control-Request-Method: GET
Origin: http://jsconsole.com

サーバ:

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, DELETE
Access-Control-Allow-Headers: Authorization
Access-Control-Max-Age: 1728000
Access-Control-Allow-Credentials: true

クライアント:

GET /api/resource HTTP/1.1
Access-Control-Request-Method: GET
Access-Control-Allow-Credentials: true
Origin: http://jsconsole.com

サーバ:

HTTP/1.1 401 Unauthorized
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, DELETE
Access-Control-Allow-Headers: Authorization
Access-Control-Max-Age: 1728000
Access-Control-Allow-Credentials: true
WWW-Authenticate: Basic realm="Authorisation Required"

クライアント:

GET /api/resource HTTP/1.1
Access-Control-Allow-Credentials: true
Authorization: Basic base64encodedUserAndPassword
Access-Control-Request-Method: GET
Origin: http://jsconsole.com

サーバ:

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, DELETE
Access-Control-Allow-Headers: Authorization
Access-Control-Max-Age: 1728000
Access-Control-Allow-Credentials: true
14
user1703761

資格情報を要求する場合、サーバーはAccess-Control-Allow-Origin応答ヘッダーの特定のオリジンで応答する必要があります(したがってワイルドカード*を使用できません)。もちろん、Access-Control-Allow-Credentials応答ヘッダーでも応答する必要があります。

18
Brock Allen