Для запроса OPTIONS из разных источников следует ли за предварительным запросом OPTIONS обычный запрос OPTIONS?

Я пытаюсь реализовать правильную логику CORS в своей службе. Из всей доступной документации мне не ясно, будет ли клиент в случае запроса OPTIONS между источниками отправлять (1) предварительный запрос OPTIONS, и если это разрешено предварительным ответом, (2) «обычный» (не предполетный) запрос OPTIONS.

Другими словами, на моем сервере, когда я получаю предварительный запрос OPTIONS, должен ли я одновременно выполнять как логику CORS, так и обычную логику обработки запроса OPTIONS, заполняя обычные заголовки ответа OPTIONS, а также Access- Заголовки ответа Control-*?

Или я должен просто выполнить логику CORS для предварительного запроса и ожидать последующего запроса OPTIONS, если метод OPTIONS разрешен из источника?

[дополнительный кредит за указание на авторитетную ссылку]


person Andy Dennie    schedule 31.10.2014    source источник


Ответы (1)


В случае запроса OPTIONS вы получите предварительный запрос OPTIONS, за которым следует фактический запрос OPTIONS. Предварительный запрос OPTIONS можно идентифицировать, поскольку он будет иметь: 1) HTTP-метод OPTIONS, 2) заголовок Origin и 3) заголовок Access-Control-Request-Method. Фактический запрос OPTIONS будет иметь только: 1) HTTP-метод OPTIONS и 2) заголовок Origin. Фактический запрос OPTIONS не будет иметь заголовка Access-Control-Request-Method.

Вот пример, который демонстрирует это: ">http://client.cors-api.appspot.com/client#?client_method=OPTIONS&client_credentials=false&server_enable=true&server_status=200&server_credentials=false&server_methods=OPTIONS&server_tabs=local

person monsur    schedule 31.10.2014