2016-05-26 17 views
0

Da ich weiß, dass, wenn Cors Anfrage mit einigen zusätzlichen Header gesetzt kommt, muss der erste Server es verarbeiten.sollten wir die Verbindung einer vor dem Flug Cors-Anfrage während des Sendens der Antwort schließen?

Mit CORS muss der Server den Header Access-Control-Allow-Header senden, um ungewöhnliche Anforderungsheader vom Client zuzulassen.

Access-Control-Erlaube-Header ... - Komma-getrennte Liste der unterstützten Anfrage-Header.

zB nehme meine Preflight-Anfrage

OPTIONS /cors HTTP/1.1 
Origin: http://api.bob.com 
Access-Control-Request-Method: PUT 
Access-Control-Request-Headers: X-Custom-Header 
Host: api.alice.com 
Accept-Language: en-US 
Connection: keep-alive 
User-Agent: Mozilla/5.0... 

wird dann von Server-Seite werde ich Antwort senden

Access-Control-Allow-Origin: http://api.bob.com 
Access-Control-Allow-Methods: GET, POST, PUT 
Access-Control-Allow-Headers: X-Custom-Header 
Content-Type: text/html; charset=utf-8 

Meine Frage ist - sollte ich die Verbindung auf Server-Seite, während in der Nähe wir senden vor dem Flug eine Antwort an den Kunden?

Noch eine Sache, wie kann ich Pre-Flight-Anfrage für alle anderen eindeutigen Folgeanforderungen zwischengespeichert?

Dank

Antwort

0

Sie die Optionen-Cache könnte anfordern Der Header

Access-Control-Max-Age

verwenden. Hängen Sie es an die Header-Sammlung der OPTIONS-Antwort an.

Aber trotzdem muss eine initiale OPTIONS-Anfrage vom User-Agent (Browser) gemacht werden, das kann man nicht vermeiden. Alle weiteren OPTIONS-Anforderungen werden jedoch zwischengespeichert und nicht an den Server ausgegeben. Keine Notwendigkeit, die Verbindung zu schließen.

Access-Control-Allow-Origin: http://hello-world.example

Access-Control-Max-Alter: 3628800

Access-Control-Allow-Methoden:

PUT als here erklärt , suchen Sie nach

könnte die folgenden Header speci haben fied

, um zum gekennzeichneten Textabschnitt zu gelangen.

+0

andere eindeutige Folgeanforderungen werden erneut nach einer Preflight-Anforderung mit Access-Control-Allow-Headers gefragt. – WitVault

+0

Sie können die anfängliche eindeutige Anfrage nicht im Voraus speichern, sondern nur weitere OPTION-Anfragen der einzelnen. Es ist eine Browser-Sache. – Legends

+0

Dies ist die Antwort, keine andere Problemumgehung möglich :-) – Legends