Мы построили сервер 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 и для локальных серверов разработки, если это возможно.