跨源请求的服务器端配置

Server-side Configuration for cross-origin requests

我有一个开发服务器当前服务于 (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 ^(.*)$  [R=200,L]

我不完全了解上述设置的作用,现在我必须将其投入生产,我不确定此配置是否已准备好投入生产。如果我按原样将其移至生产环境,您能否帮助阐明其影响?

这些配置选项允许您的应用程序 运行 作为 API。它们是 HTTP access control (CORS).

的必要部分

前四行设置 headers 可用于控制如何访问您的 API 其余行允许 OPTIONS 请求,它将检查请求是否是允许与否。更多信息在这里 - universal-CORS-htaccess.

Access-Control headers 设置为允许来自不同域的资源请求。它们还允许您限制哪些域访问您的 API 资源以及使用哪些方法。例如,您的 API 可能用于使用 POST 请求专门为特定域提供资源。因此,您可以使用:

Access-Control-Allow-Origin "http://foo.example"
Access-Control-Allow-Methods "POST"

这些配置对于您的应用程序 运行 作为 API 是必需的,但它的生产准备情况如何?如果没有关于您的服务器环境和应用程序框架等的更多详细信息,很难说。您可能希望将这些选项移出 .htaccess 文件或首先启用您的 .htaccess 文件。但你确实需要它们。