This page was translated from English by the community. Learn more and join the MDN Web Docs community.
OPTIONS
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
HTTP-метод OPTIONS используется для описания параметров соединения с целевым ресурсом. Клиент может указать особый URL для обработки метода OPTIONS, или * (звёздочку) чтобы указать весь сервер целиком.
| Запрос имеет тело | Может* |
|---|---|
| Успешный ответ имеет тело | Может |
| Безопасный | Да |
| Идемпотентный | Да |
| Кешируемый | Нет |
| Допускается в HTML-формах | Нет |
* Отправка тела в запросе OPTIONS технически возможна, но его семантика не определена. Можно включить тело в сообщение OPTIONS при условии, что указан правильный заголовок Content-Type и сервер его ожидает, поскольку такое поведение зависит от конкретной реализации.
Синтаксис
OPTIONS /index.html HTTP/1.1 OPTIONS * HTTP/1.1
Примеры
>Определение разрешённых сервером методов запроса
Для того, чтобы узнать какие методы запросов поддерживаются сервером, можно воспользоваться curl направить OPTIONS запрос:
curl -X OPTIONS http://example.org -i
Ответ на запрос содержит Allow заголовок с поддерживаемыми методами:
HTTP/1.1 200 OK Allow: OPTIONS, GET, HEAD, POST Cache-Control: max-age=604800 Date: 2016年10月13日 11:45:00 GMT Expires: 2016年10月20日 11:45:00 GMT Server: EOS (lax004/2813) x-ec-custom-error: 1 Content-Length: 0
Предзапросы по технологии CORS
По технологии CORS, с помощью метода OPTIONS направляется предварительный запрос, поэтому сервер может ответить приемлемо ли отправлять запросы этим методом. Access-Control-Request-Method заголовок уведомляет сервер в составе предварительного запроса о том что, запрос OPTIONS будет отправляться на сервер вместе с POST запросом. Access-Control-Request-Headers заголовок уведомляет сервер о том, что при отправке фактического запроса, он будет отправлен с помощью пользовательских заголовков X-PINGOTHER и Content-Type. В этом случае сервер имеет возможность определять возможно ли принять запрос с такими параметрами.
OPTIONS /resources/post-here/ HTTP/1.1 Host: bar.other 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: http://foo.example Access-Control-Request-Method: POST Access-Control-Request-Headers: X-PINGOTHER, Content-Type
Ответ сервера содержит параметр Access-Control-Allow-Methods и сообщает, что POST, GET, и OPTIONS методы являются приемлемыми для данного ресурса. Этот заголовок похож на заголовок Allow , но используется строго в контексте CORS.
HTTP/1.1 200 OK Date: 2008年12月01日 01:15:39 GMT Server: Apache/2.0.61 (Unix) Access-Control-Allow-Origin: http://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 Content-Encoding: gzip Content-Length: 0 Keep-Alive: timeout=2, max=100 Connection: Keep-Alive Content-Type: text/plain
Спецификации
| Спецификация | Заголовок |
|---|---|
| RFC 7231, раздел 4.3.7: OPTIONS | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
Совместимость с браузерами
Enable JavaScript to view this browser compatibility table.