Autenticación básica utilizando XHR
Estoy tratando de obtener alguna respuesta de mi servidor que necesita autenticación básica. Así que cuando uso rizo como:
curl -u user:pass http://myserver.com/get/send-my-data
Me está dando la respuesta correcta. Pero cuando estoy creando una solicitud XHR usando jquery AJAX. Estoy teniendo error 403 Aquí está mi configuración de AJAX:
$.ajax ({
type: 'GET',
url: 'http://myserver.com/get/send-my-data',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic" + encode64(user:pass)); // I have calculated base64 encoded value of user:pass correctly.
},
success: function(d) { console.log(d); },
crossDomain: 'true'
});
Estoy teniendo respuesta 403. Aquí está el encabezado de solicitud obtenido de curl usando la opción -v.
> POST /get/send-my-data HTTP/1.1
**> Authorization: Basic ********** // Removed original code deliberately**
> User-Agent: curl/7.27.0
> Host: localhost:8080
> Accept: */*
> Content-Length: 264
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=----------------------------3c0e06f1e2b4
Aquí está el encabezado obtenido de charles de mi solicitud XHR
OPTIONS /get/send-my-data HTTP/1.1
Host 10.40.55.110:4502
Access-Control-Request-Method GET
Origin http://localhost:8080
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
**Access-Control-Request-Headers origin, authorization, accept**
Accept */*
Referer http://localhost:8080/proof/check.html
Accept-Encoding gzip,deflate,sdch
Accept-Language en-US,en;q=0.8
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.3
No pude entender por qué esto está pasando? ¿Por qué mi encabezado de solicitud XHR no muestra el encabezado de Autorización como se muestra en el encabezado de enrollamiento? Por favor sugiera donde estoy haciendo mal.
PS: Es una solicitud de dominio cruzado.