Jak wyglądałoby preflightowane żądanie HTTP, jeśli uwzględnisz podstawowe uwierzytelnianie? Jak ta rozmowa? Im kłopoty aby zrozumieć, które nagłówki muszą być wysyłane gdzie, również dlatego, że jej nie można go debugować poprawnie z FirebugCORS i HTTP basic auth
klient:
OPTIONS /api/resource HTTP/1.1
Access-Control-Request-Method: GET
Origin: http://jsconsole.com
Server:
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
Klient:
GET /api/resource HTTP/1.1
Access-Control-Request-Method: GET
Access-Control-Allow-Credentials: true
Origin: http://jsconsole.com
Serwer:
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"
Klient:
GET /api/resource HTTP/1.1
Access-Control-Allow-Credentials: true
Authorization: Basic base64encodedUserAndPassword
Access-Control-Request-Method: GET
Origin: http://jsconsole.com
Serwer: nagłówka odpowiedzi
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
Zobacz sekcję "CORS z podstawowym auth" w połowie artykułu na http://avalanche123.com/blog/2011/10/10/cross-domain-javascript-lessons-learned/ –
Niestety blog lawinowy wpis jest nieaktualny. Chrome całkowicie obsługuje podstawowe uwierzytelnianie. IE jednak nie, chyba że bawisz się z ustawieniami bezpieczeństwa. – ianbeks