我正在尝试配置Apache作为代理服务器,以允许使用CORS进行跨域AJAX。为了实现这一点,我需要Apache响应两个HTTP动词,如下所示:
我的当前配置如下。如果可能的话,我希望通过纯的Web服务器解决这个问题,例如Apache/Nginx,而不是运行一些应用程序代码。
OPTIONS:用一些简单的HTTP标头回应此CORS“预检”请求。我考虑使用一个简单的CGI脚本(options.pl)。
POST:将所有POST请求代理到远程服务器,但添加Access-Control-Allow-Origin“*”标头以允许跨域请求发生。
我的当前配置如下。如果可能的话,我希望通过纯的Web服务器解决这个问题,例如Apache/Nginx,而不是运行一些应用程序代码。
<VirtualHost *:80>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
DocumentRoot /var/www
<Location "/">
# Disallow all verbs except OPTIONS and POST
order deny,allow
deny from all
# OPTIONS should be handled by a local CGI script
<Limit OPTIONS>
allow from all
Script OPTIONS /cgi-bin/options.pl
</Limit>
# POST requests are proxied to a remote server
<Limit POST>
allow from all
ProxyPass http://somewhere-else/
ProxyPassReverse http://somewhere-else/
Header add Access-Control-Allow-Origin "*"
</Limit>
</Location>
</VirtualHost>