OPTIONS
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
HTTP OPTIONS
方法用於請求給定 URL 或伺服器的允許通訊選項。用戶端可以使用此方法指定 URL,或使用星號(*
)來指代整個伺服器。
語法
http
OPTIONS /index.html HTTP/1.1
OPTIONS * HTTP/1.1
範例
辨識允許的請求方法
要查找伺服器支援的請求方法,可以使用 curl
命令列程序發出 OPTIONS
請求:
bash
curl -X OPTIONS https://example.org -i
然後回應中包含一個包含允許方法的 Allow
標頭:
http
HTTP/1.1 204 No Content
Allow: OPTIONS, GET, HEAD, POST
Cache-Control: max-age=604800
Date: Thu, 13 Oct 2016 11:45:00 GMT
Server: EOS (lax004/2813)
CORS 中的預檢請求
在 CORS 中,會使用 OPTIONS
方法發送預檢請求,以便伺服器可以回應是否允許發送請求。在此範例中,我們將請求許可權的參數列出如下:
- 在預檢請求中發送的
Access-Control-Request-Method
標頭告訴伺服器,當實際請求被發送時,它將具有POST
請求方法。 Access-Control-Request-Headers
標頭告訴伺服器,當實際請求被發送時,它將具有X-PINGOTHER
和Content-Type
標頭。
http
OPTIONS /resources/post-here/ HTTP/1.1
Host: bar.example
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Connection: keep-alive
Origin: https://foo.example
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type,x-pingother
伺服器現在可以回應是否接受這些情況下的請求。在此範例中,伺服器回應表示:
Access-Control-Allow-Origin
-
允許
https://foo.example
來源通過以下方式請求bar.example/resources/post-here/
URL: Access-Control-Allow-Methods
-
URL 的允許方法為
POST
、GET
和OPTIONS
。(此標頭類似於Allow
回應標頭,但僅用於 CORS。) Access-Control-Allow-Headers
-
X-PINGOTHER
和Content-Type
為 URL 的允許請求標頭。 Access-Control-Max-Age
-
上述許可權可以被緩存 86400 秒(1 天)。
http
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 01:15:39 GMT
Server: Apache/2.0.61 (Unix)
Access-Control-Allow-Origin: https://foo.example
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
Access-Control-Max-Age: 86400
Vary: Accept-Encoding, Origin
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
狀態碼
規範
Specification |
---|
HTTP Semantics # OPTIONS |
瀏覽器相容性
BCD tables only load in the browser