2012-01-20 19 views
9

Estoy tratando de obtener los encabezados de respuesta de una solicitud de ajax, pero el método get de jQuery getAllResponseHeaders xhr solo muestra el encabezado "Content-Type". Alguien sabe por qué?XmlHttpRequest getAllResponseHeaders() no devuelve todos los encabezados

Esta es la cabecera de respuesta
Access-Control-Allow-Credenciales: true
Access-Control-Allow-encabezados: If-Modified-Since, Cache-Control, Content-Type, mantenimiento de conexiones, X-solicitada-Con, Autorización
Access-control-Allow-Métodos: GET, PUT, POST, DELETE OPCIONES
Access-control-Allow-origen: *
Access-control-Max-Age: 1728000
Autorización: apikey = "apikey1" AuthenticationToken = "62364GJHGJHG"
Conexión: keep- vivo
Contenido-longitud: 240
Tipo de contenido: application/json; charset = UTF-8
X-Powered-By: Expresar

Esta es la función del éxito

params.success = function (response, textStatus, jqXHR) { 
    console.log(jqXHR.getAllResponseHeaders()) 
} 

Esto es lo que registra ...
Content-Type: application/json; charset = utf-8

+0

¿Es este JSONP con una llamada de dominio cruzado? – epascarello

+0

Es un formulario de inicio de sesión que envía json a un servicio de nodo que tengo en ejecución localmente. Entonces mi página se está ejecutando en http: // backbone y publica datos de formulario en http: // localhost: 8000. ¿Es esa la razón de? – screenm0nkey

+1

¿Cuál ha sido su solución aquí? – pabera

Respuesta

6

Acabo de toparme con esto. Es porque estás haciendo una solicitud de CORS y no estás exponiendo el encabezado de la ubicación.

es necesario agregar un Access-Control-Expose-Headers a su respuesta previa al vuelo en CORS Express:

res.header('Access-Control-Expose-Headers', 'Content-Type, Location'); 
res.send(200); 

que va a resolver el problema.

+0

Golpeando mi cabeza contra la pared, esto fue un salvavidas – chrismarx

Cuestiones relacionadas