Freigeben über


Preflight-Dateianforderung

Der Preflight File Request Vorgang fragt die CORS-Regeln (Cross-Origin Resource Sharing) nach Azure Files ab, bevor die Anforderung gesendet wird.

Ein Webbrowser oder ein anderer Benutzer-Agent sendet eine Preflight-Anforderung, die die Ursprungsdomäne, die Methode und die Header für die Anforderung enthält, die der Agent durchführen möchte. Wenn CORS für Azure Files aktiviert ist, wertet Azure Files die Preflightanforderung anhand der CORS-Regeln aus, die der Kontobesitzer über Festlegen von Dateidiensteigenschaften konfiguriert hat. Azure Files nimmt die Anforderung an oder lehnt sie ab.

Weitere Informationen zu CORS und der Preflight-Anforderung finden Sie in der CORS-Spezifikation und cors-Unterstützung für Azure Storage.

Protokollverfügbarkeit

Aktiviertes Dateifreigabeprotokoll Verfügbar
SMB Ja
NFS Ja

Anforderung

Sie können wie folgt angeben Preflight File Request . Ersetzen Sie <account-name> durch den Namen Ihres Speicherkontos. Ersetzen Sie durch <file-resource> die Freigabe, das Verzeichnis oder die Dateiressource, die das Ziel der Anforderung ist.

HTTP-Verb Anforderungs-URI HTTP-Version
OPTIONS http://<account-name>.file.core.windows.net/<file-resource>

http://<account-name>.file.core.windows.net/<file-resource>?restype=share

http://<account-name>.file.core.windows.net/<file-resource>?restype=directory
HTTP/1.1

Der URI muss immer den Schrägstrich (/) enthalten, um den Hostnamen von den Pfad- und Abfrageabschnitten des URI zu trennen. Bei diesem Vorgang kann der Pfadteil des URI leer sein oder auf eine beliebige Azure Files Ressource verweisen. Wenn die Azure Files Ressource eine Freigabe oder ein Verzeichnis ist, ist der restype Abfrageparameter erforderlich.

Die Ressource ist möglicherweise zu dem Zeitpunkt vorhanden, zu dem die Preflight-Anforderung gestellt wird. Die Preflight-Anforderung wird auf Dienstebene anhand der CORS-Regeln des Diensts ausgewertet, sodass sich das Vorhandensein oder Fehlen des Ressourcennamens nicht auf den Erfolg oder Fehler des Vorgangs auswirkt.

URI-Parameter

Keine.

Anforderungsheader

In der folgenden Tabelle werden die erforderlichen und optionalen Anforderungsheader beschrieben:

Anforderungsheader BESCHREIBUNG
Origin Erforderlich. Gibt den Ursprung an, von dem die Anforderung ausgestellt wird. Die Ursprungsdomäne wird anhand der CORS-Regeln des Diensts überprüft, um zu ermitteln, ob die Preflight-Anforderung erfolgreich oder nicht erfolgreich war.
Access-Control-Request-Method Erforderlich. Gibt die Methode (oder das HTTP-Verb) für die Anforderung an. Die Methode wird anhand der CORS-Regeln des Diensts überprüft, um zu ermitteln, ob die Preflight-Anforderung erfolgreich oder nicht erfolgreich war.
Access-Control-Request-Headers Optional. Gibt die Anforderungsheader an, die gesendet werden. Wenn sie nicht vorhanden ist, geht der Dienst davon aus, dass die Anforderung keine Header enthält.
x-ms-allow-trailing-dot: { <Boolean> } Optional. Version 2022-11-02 und höher. Der boolesche Wert gibt an, ob ein nachgestellter Punkt in der Anforderungs-URL gekürzt werden soll. Weitere Informationen finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten.

Anforderungstext

Keine.

Antwort

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Ausführliche Informationen zu Preflight-Anforderungsheadern finden Sie in der CORS-Spezifikation.

Antwortheader BESCHREIBUNG
Access-Control-Allow-Origin Gibt den zulässigen Ursprung an, der dem Ursprungsheader in der Anforderung entspricht, wenn die Preflightanforderung erfolgreich ist.
Access-Control-Allow-Methods Wenn die Preflight-Anforderung erfolgreich ist, wird dieser Header auf den Wert oder die Werte festgelegt, die für den Anforderungsheader Access-Control-Request-Methodangegeben sind.
Access-Control-Allow-Headers Wenn die Preflight-Anforderung erfolgreich ist, wird dieser Header auf den Wert oder die Werte festgelegt, die für den Anforderungsheader Access-Control-Request-Headersangegeben sind.
Access-Control-Max-Age Gibt an, wie lange der Benutzer-Agent die Preflight-Anforderung für zukünftige Anforderungen zwischenspeichern darf.
Access-Control-Allow-Credentials Gibt an, ob die Anforderung über Anmeldeinformationen erfolgen kann. Dieser Header ist immer auf true festgelegt.

Antworttext

Keine.

Autorisierung

Der Preflight File Request Vorgang wird immer anonym ausgeführt. Es erfordert keine Autorisierung und ignoriert Anmeldeinformationen, wenn sie bereitgestellt werden.

Hinweis

Wenn Sie Die Azure Storage-Analyse aktiviert haben und Metriken protokollieren, wird ein Aufruf des Vorgangs Preflight File Request als AnonymousSuccessprotokolliert. Aus diesem Grund wird AnonymousSuccess beim Anzeigen von Metriken im Azure-Portal für Preflight File Requestprotokolliert. Diese Metrik gibt nicht an, dass Ihre privaten Daten kompromittiert wurden, sondern nur, dass der Preflight File Request Vorgang mit einem status Code von 200 (OK) erfolgreich war.

Beispielanforderung und -antwort

Im folgenden Beispiel wird eine Preflightanforderung für den Ursprung www.contoso.comgesendet. Die Anforderungsmethode ist auf PUTfestgelegt, und die Anforderungsheader sind auf content-type und acceptfestgelegt.

OPTIONS http://myaccount.file.core.windows.net/myshare/myfile  
HTTP/1.1  
Accept: */*  
Origin: www.contoso.com  
Access-Control-Request-Method: PUT  
Access-Control-Request-Headers: content-type, accept  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)  
Content-Length: 0    

Die Antwort gibt an, dass CORS für den Dienst aktiviert ist und dass eine CORS-Regel der Preflight-Anforderung entspricht:

HTTP/1.1 200 OK  
Connection: Keep-Alive  
Content-Length: 0  
Content-Type: text/html; charset=UTF-8  
Access-Control-Allow-Origin: *  
Access-Control-Max-Age: 60  
Access-Control-Allow-Methods: PUT  
Access-Control-Allow-Headers: accept,content-type

Hinweise

Wenn CORS für den Dienst aktiviert ist und eine CORS-Regel der Preflight-Anforderung entspricht, antwortet der Dienst auf die Preflight-Anforderung mit status Code 200 (OK). Die Antwort enthält die erforderlichen Access-Control-Header. In diesem Fall wird die Anforderung in Rechnung gestellt.

Wenn CORS nicht aktiviert ist oder keine CORS-Regel eine Übereinstimmung mit der Preflight-Anforderung aufweist, antwortet der Dienst mit dem Statuscode 403 (Verboten). In diesem Fall wird die Anforderung nicht in Rechnung gestellt.

Wenn die OPTIONS Anforderung falsch formatiert ist, antwortet der Dienst mit status Code 400 (Ungültige Anforderung), und die Anforderung wird nicht in Rechnung gestellt. Ein Beispiel für eine falsch formatierte Anforderung ist eine Anforderung, die nicht die erforderlichen Origin Header und Access-Control-Request-Method enthält.

Die Preflight-Anforderung ist ein Mechanismus zum Abfragen der CORS-Funktion eines Speicherdiensts, der einem bestimmten Speicherkonto zugeordnet ist. Die Preflight-Anforderung hat keine bestimmte Ressource als Ziel.