預檢檔案要求
作業會 Preflight File Request
先查詢跨原始來源資源分享 (CORS) 規則,以取得Azure 檔案儲存體,再傳送要求。
網頁瀏覽器或其他使用者代理程式會傳送預檢要求,其中包含代理程式想要提出之要求的源網域、方法和標頭。 如果已啟用 CORS 進行Azure 檔案儲存體,則Azure 檔案儲存體會根據帳戶擁有者透過設定檔案服務屬性設定的 CORS 規則評估預檢要求。 Azure 檔案儲存體然後接受或拒絕要求。
如需 CORS 和預檢要求的詳細資訊,請參閱Azure 儲存體的 CORS 規格和 CORS 支援。
通訊協定可用性
已啟用檔案共用通訊協定 | 可用 |
---|---|
SMB | |
NFS |
要求
您可以指定 Preflight File Request
如下。 使用您的儲存體帳戶名稱取代 <account-name>
。 將 取代 <file-resource>
為將做為要求目標的共用、目錄或檔案資源。
HTTP 指令動詞 | 要求 URI | HTTP 版本 |
---|---|---|
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 |
URI 必須一律包含正斜線 (/) ,以分隔主機名稱與 URI 的路徑和查詢部分。 在此作業的情況下,URI 的路徑部分可以是空的,也可以指向任何Azure 檔案儲存體資源。 如果Azure 檔案儲存體資源是共用或目錄,則需要 restype
查詢參數。
資源在提出預檢要求時可能或可能不存在。 預檢要求會根據服務的 CORS 規則,在服務層級進行評估,因此存在或缺少資源名稱不會影響作業的成功或失敗。
URI 參數
無。
要求標頭
下表描述必要和選擇性的要求標頭:
要求標頭 | 描述 |
---|---|
Origin |
必要。 指定發出要求的來源。 系統會根據服務的 CORS 規則檢查此來源以判斷預檢要求成功或失敗。 |
Access-Control-Request-Method |
必要。 指定要求的方法 (或 HTTP 動詞) 。 系統會根據服務的 CORS 規則檢查此方法以判斷預檢要求失敗或成功。 |
Access-Control-Request-Headers |
選擇性。 指定將傳送的要求標頭。 如果不存在,服務會假設要求不包含標頭。 |
x-ms-allow-trailing-dot: { <Boolean> } |
選擇性。 版本 2022-11-02 和更新版本。 布林值會指定是否應該修剪要求 URL 中的尾端點。 如需詳細資訊,請參閱 命名和參考共用、目錄、檔案和中繼資料。 |
要求本文
無。
回應
回應包括 HTTP 狀態碼和一組回應標頭。
狀態碼
成功的作業會傳回狀態碼 200 (OK)。
回應標頭
這項作業的回應包括下列標頭。 回應也可能包含其他標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協定規格。
如需預檢要求標頭的詳細資訊,請參閱 CORS 規格。
回應標頭 | 描述 |
---|---|
Access-Control-Allow-Origin |
指出允許的原點,如果預檢要求成功,則符合要求中的源標頭。 |
Access-Control-Allow-Methods |
如果預檢要求成功,此標頭會設定為為要求標頭 Access-Control-Request-Method 所指定的值或值。 |
Access-Control-Allow-Headers |
如果預檢要求成功,此標頭會設定為為要求標頭 Access-Control-Request-Headers 所指定的值或值。 |
Access-Control-Max-Age |
指定允許使用者代理程式快取未來要求的預檢要求的時間長度。 |
Access-Control-Allow-Credentials |
指出是否可以透過認證提出要求。 此標頭一律設定為 true 。 |
回應本文
無。
授權
作業 Preflight File Request
一律會匿名執行。 它不需要授權,而且會在提供認證時忽略認證。
注意
如果您已啟用 Azure 儲存體分析並記錄計量,則會將作業的呼叫 Preflight File Request
記錄為 AnonymousSuccess
。 基於這個理由,如果您在Azure 入口網站中檢視計量,您會看到 AnonymousSuccess
記錄的 Preflight File Request
。 此計量不會指出您的私人資料已遭入侵,但只有 Preflight File Request
作業成功,狀態碼為 200 (OK) 。
範例要求與回應
下列範例會傳送來源 www.contoso.com
的預檢要求。 要求方法會設定為 PUT
,而要求標頭會設定為 content-type
和 accept
。
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
回應指出服務已啟用 CORS,且 CORS 規則符合預檢要求:
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
備註
如果已啟用服務的 CORS,且 CORS 規則符合預檢要求,服務會回應狀態碼為 200 (OK) 的預檢要求。 回應包含所需的 Access-Control
標頭。 在此情況下,要求會計費。
如果未啟用 CORS 或 CORS 規則不符合預檢要求,服務會以狀態碼 403 (禁止) 回應。 在此情況下,要求不會計費。
OPTIONS
如果要求格式不正確,服務會以狀態碼 400 (不正確的要求) 回應,且不會收取要求的費用。 格式錯誤的要求範例是不包含必要 Origin
和 Access-Control-Request-Method
標頭的要求。
預檢要求是一種機制,可查詢與特定儲存體帳戶相關聯的儲存體服務 CORS 功能。 預檢要求不會針對特定資源。