Soy un novato en angular.js y estoy tratando de agregar algunos encabezados a una solicitud:
var config = {headers: {
'Authorization': 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==',
'Accept': 'application/json;odata=verbose'
}
};
$http.get('https://www.example.com/ApplicationData.svc/Malls(1)/Retailers', config).success(successCallback).error(errorCallback);
He mirado toda la documentación y me parece que debería ser correcta.
Cuando utilizo un archivo local para la URL en el $http.get, veo la siguiente solicitud HTTP en la pestaña de red en Chrome:
GET /app/data/offers.json HTTP/1.1
Host: www.example.com
Connection: keep-alive
Cache-Control: max-age=0
If-None-Match: "0f0abc9026855b5938797878a03e6889"
Authorization: Basic Y2hhZHN0b25lbWFuOkNoYW5nZV9tZQ==
Accept: application/json;odata=verbose
X-Requested-With: XMLHttpRequest
If-Modified-Since: Sun, 24 Mar 2013 15:58:55 GMT
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
X-Testing: Testing
Referer: http://www.example.com/app/index.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
Como puede ver, ambos encabezados se agregaron correctamente. Pero cuando cambio la URL a la que se muestra $http.getarriba (excepto usando la dirección real, no example.com), obtengo:
OPTIONS /ApplicationData.svc/Malls(1) HTTP/1.1
Host: www.datahost.net
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://mpon.site44.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
Access-Control-Request-Headers: accept, origin, x-requested-with, authorization, x-testing
Accept: */*
Referer: http://mpon.site44.com/app/index.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
La única diferencia de código entre estos dos es que, para el primero, la URL es un archivo local y, para el segundo, la URL es un servidor remoto. Si observa el segundo encabezado de Solicitud, no hay un encabezado de Autenticación y Acceptparece estar usando un encabezado predeterminado en lugar del especificado. Además, la primera línea ahora dice en OPTIONSlugar de GET(aunque Access-Control-Request-Methodes GET).
¿Alguna idea de lo que está mal con el código anterior, o cómo obtener los encabezados adicionales incluidos cuando no se usa un archivo local como fuente de datos?