我们构建了一个启用了 CORS 的 RESTful 服务器,这意味着它将从客户端获取 OPTIONS 请求。我们希望让 Web 服务器处理这些请求,而不是我们的下游 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”,而不调用任何外部脚本。[/编辑]
我们的本地开发服务器没有运行 NGINX,因此需要它。谢谢!
答案1
要在 Apache httpd 中设置这些标头,请查看mod_headers
。这里有一个例子(经过快速谷歌搜索后找到),它似乎可以完成您所寻找的事情:http://saulalbert.net/blog/access-control-allow-origin-xmlhttprequest-day-what-fun/
附带说明一下,由于您的设置似乎是在更高的环境中使用 NGINX,因此如果可能的话,最好也使用 NGINX 作为本地开发服务器。