2015-01-23 13 views
10

Nelle specifiche CORS HTTP, qual è la differenza tra 5.6 Access-Control-Allow-Headers e 5.3 Access-Control-Expose-Headers?Nelle specifiche HTTP CORS, qual è la differenza tra Allow-Headers e Expose-Headers?

[Consenti-intestazioni] intestazione indica, come parte della risposta a una richiesta di verifica preliminare , che i nomi dei campi di intestazione può essere utilizzato durante la richiesta attuale

UPDATE: Speravo qualcuno mi dicesse una di queste intestazioni viene inviato per ogni richiesta (pre-volo) ... Tuttavia, v'è ancora altro colpo di testa che viene utilizzato per questo: 5.9 Access-Control-Request-Headers

[Request-Header] intestazione indica che le intestazioni sarà utilizzato nella richiesta attuale e parte della richiesta di verifica preliminare

proposito, mi piace il modo in cui (W3C) attentamente formulato 5.9 in modo che il richiesta di intestazione può avere un campo chiamato _Something_ Request Header.

Sono completamente perso nelle specifiche, c'è un diagramma in cui posso capire meglio questo processo?

risposta

11

Access-Control-Allow-intestazioni

Utilizzato in risposta a una richiesta di verifica preliminare per indicare quali intestazioni HTTP può essere utilizzato al momento della richiesta effettiva.

Access-Control-Expose-intestazioni

Questa intestazione consente un server intestazioni whitelist che i browser sono autorizzati ad accedere. Per esempio:

Fonte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

+4

Quindi, fondamentalmente questi sono mal denominati. Il primo è l'intestazione della richiesta e quest'ultimo è l'intestazione di risposta resa visibile agli script, giusto? –

+0

La [documentazione MDN] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) afferma: _ "La risposta di Access-Control-Allow-Headers intestazione viene utilizzata in risposta a una richiesta di preflight per indicare quali intestazioni HTTP saranno disponibili tramite Access-Control-Expose-Headers quando si effettua la richiesta effettiva. "_ Non è corretto? –

0

solo per chiarire un commento sopra che questi sono mal di nome, questi non sono male chiamati.

Servono funzioni distinte.

  • specifica Access-control-allow-headers che le intestazioni sono autorizzati a modificare lo stato del server.
  • Mentre Access-control-expose-headers ha un metodo get metodo getResponseHeader() che restituisce il valore di una particolare intestazione di risposta. Durante una richiesta CORS, il metodo getResponseHeader() può accedere solo a intestazioni di risposta semplici. Per poter accedere ad altre intestazioni, devi specificarlo qui.
+0

Servono funzioni distinte, ma i loro nomi sono così simili. Sono decisamente mal menzionati. –

Problemi correlati