2012-01-20 17 views
9

Sto cercando di ottenere le intestazioni di risposta da una richiesta Ajax ma il metodo xhr getAllResponseHeaders di jQuery visualizza solo l'intestazione "Content-Type". Qualcuno sa perché?XmlHttpRequest getAllResponseHeaders() non restituisce tutte le intestazioni

Questa è l'intestazione di risposta
Access-Control-Allow-Credenziali: true
Access-Control-Allow-intestazioni: If-Modified-Since, Cache-Control, Content-Type, keep-alive, X-richiesta-Con, l'autorizzazione
Access-Control-Allow-Metodi: GET, PUT, POST, DELETE, OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 1.728.000
Autorizzazione: apikey = "apikey1" AuthenticationToken = "62364GJHGJHG"
Connessione: keep- alive
Content-Length: 240
Content-Type: application/json; charset = utf-8
X-Powered-By: Esprimere

Questa è la funzione successo

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

Questo è quello che registra ...
Content-Type: application/jSON; charset = utf-8

+0

È questo JSONP con una chiamata interdominio? – epascarello

+0

È un modulo di accesso che invia json a un servizio nodo che ho eseguito localmente. Quindi la mia pagina è in esecuzione su http: // backbone e pubblica i dati del modulo su http: // localhost: 8000. È per questo? – screenm0nkey

+1

Qual è stata la tua soluzione qui? – pabera

risposta

6

Mi sono imbattuto in questo. È perché stai facendo una richiesta CORS e non stai esponendo l'intestazione Location.

è necessario aggiungere un Access-Control-Expose-Headers alla risposta preflight CORS in veloce:

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

che risolverà il problema.

+0

Battere la testa contro un muro, questo è stato un risparmiatore di vita – chrismarx

Problemi correlati