我有一个当前服务的开发服务器(Apache)一个可以跨域访问的API,以下是我的VirtualHost配置:
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
我不完全了解上述设置的功能,现在我必须将其移至生产环境,我不确定此配置是否已准备就绪。如果我按原样将其转移到生产中,你能否帮助阐明其影响?
答案 0 :(得分:2)
这些配置选项允许您的应用程序作为API运行。它们是HTTP access control (CORS)的必要部分。
前四行是设置标题,可用于控制API的访问方式,其余行允许OPTIONS
请求,这些请求将检查是否允许请求。更多信息 - universal-CORS-htaccess。
Access-Control
标头设置为允许来自不同域的资源请求。它们还允许您限制哪些域访问您的API资源以及使用哪些方法。例如,您的API可能会用于使用POST
请求专门为某个域提供资源。因此,您可以使用:
Access-Control-Allow-Origin "http://foo.example"
Access-Control-Allow-Methods "POST"
这些配置是您的应用程序作为API运行所必需的,但它是如何准备生产的?没有关于服务器环境和应用程序框架等的更多细节,很难说。您可能希望将这些选项从.htaccess
文件中移出,或者首先启用.htaccess
文件。但你确实需要它们。