Назад | Перейти на главную страницу

Как настроить Apache для обработки запроса OPTIONS без вызова скрипта

Мы построили сервер RESTful с включенным CORS, что означает, что он будет получать запросы OPTIONS от клиентов. Мы бы хотели, чтобы их обрабатывал веб-сервер, а не наш подчиненный REST-сервер. Как мы можем настроить Apache для обработки этих запросов без вызова каких-либо внешних скриптов?

В NGINX это примерно так:

   if ($request_method = OPTIONS ) {
        add_header Access-Control-Allow-Origin "*";
        add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
        add_header Access-Control-Allow-Headers "ACCEPT, ORIGIN, X-REQUESTED-WITH, CONTENT-TYPE, AUTHORIZATION";
        add_header Access-Control-Allow-Credentials "true";
        add_header Content-Length 0;
        add_header Content-Type text/plain;
        return 200;
   }

Но мы не можем найти подобный механизм в Apache. [править] Уловка состоит не в том, чтобы установить заголовки, что очевидно в Apache, а в том, чтобы вернуть "200" из запроса без вызова какого-либо внешнего скрипта. [/редактировать]

Это нужно для наших локальных dev-серверов, на которых не работает NGINX. Спасибо!

Чтобы установить эти заголовки в Apache httpd, взгляните на mod_headers. Вот пример (найденный после быстрого поиска в Google), который, похоже, делает то, что вы ищете: http://saulalbert.net/blog/access-control-allow-origin-xmlhttprequest-day-what-fun/

Кстати, поскольку ваша установка, похоже, использует NGINX в более высоких средах, было бы разумно использовать NGINX и для локальных серверов разработки, если это возможно.